From 4fef01ab6d24145cb9ecd5d779b90a15764f02cc Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Tue, 5 Dec 2017 18:05:36 +0100 Subject: rfc2047: blaze822_decode_rfc2047: check for NUL bytes at the very end of decoding --- rfc2047.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'rfc2047.c') diff --git a/rfc2047.c b/rfc2047.c index ab65772..1cfec5c 100644 --- a/rfc2047.c +++ b/rfc2047.c @@ -130,6 +130,9 @@ blaze822_decode_rfc2047(char *dst, char *src, size_t dlen, char *tgtenc) iconv_t ic = (iconv_t)-1; char *srcenc = 0; + char *startdst = dst; + size_t startdlen = dlen; + char *b = src; // XXX use memmem @@ -233,9 +236,6 @@ blaze822_decode_rfc2047(char *dst, char *src, size_t dlen, char *tgtenc) } } - if (memchr(dst, 0, dlen)) - goto nocode; - while (!partial && declen && dlen) { *dst++ = *dec++; declen--; @@ -252,6 +252,12 @@ blaze822_decode_rfc2047(char *dst, char *src, size_t dlen, char *tgtenc) dlen--; } + if (memchr(startdst, 0, dst - startdst)) { + dst = startdst; + dlen = startdlen; + goto nocodeok; + } + *dst = 0; if (ic != (iconv_t)-1) -- cgit 1.4.1