X-Git-Url: https://www.bearssl.org/gitweb//home/git/?p=BearSSL;a=blobdiff_plain;f=src%2Fcodec%2Fpemdec.t0;h=4ebf0dda4e4c920d3bc2d3515cd73d572847dd2d;hp=7a0798c5683daa36e6e3d221372aaeec676c5cc4;hb=a0054ad8212ecf0f31608fee60cafb32fbde789d;hpb=3210f38e0491b39aec1ef419cb4114e9483089fb diff --git a/src/codec/pemdec.t0 b/src/codec/pemdec.t0 index 7a0798c..4ebf0dd 100644 --- a/src/codec/pemdec.t0 +++ b/src/codec/pemdec.t0 @@ -24,7 +24,7 @@ preamble { #include "inner.h" -#define CTX ((br_pem_decoder_context *)((unsigned char *)t0ctx - offsetof(br_pem_decoder_context, cpu))) +#define CTX ((br_pem_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_pem_decoder_context, cpu))) /* see bearssl_pem.h */ void @@ -144,7 +144,8 @@ cc: read8-native ( -- x ) { begin over ifnot 2drop skip-newline 0 ret then read8 dup `\n = if 2drop orig-len swap - ret then - norm-upper over set8 1+ swap 1- swap + dup `\r = if drop else norm-upper over set8 then + 1+ swap 1- swap again ; \ Remove trailing dashes from the name buffer. @@ -203,7 +204,9 @@ cc: write8 ( x -- ) { \ Flush the output buffer. cc: flush-buf ( -- ) { if (CTX->ptr > 0) { - CTX->dest(CTX->dest_ctx, CTX->buf, CTX->ptr); + if (CTX->dest) { + CTX->dest(CTX->dest_ctx, CTX->buf, CTX->ptr); + } CTX->ptr = 0; } }