From d85530cecf34454cc7b4a4ead1d30ed8705fa4dd Mon Sep 17 00:00:00 2001 From: Bill Shannon Date: Thu, 29 Jun 2017 15:49:39 -0700 Subject: [PATCH] Be sure to null terminate copied charset string - fixes #34 --- src/parse.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/parse.c b/src/parse.c index 75be526..98e817b 100644 --- a/src/parse.c +++ b/src/parse.c @@ -918,6 +918,7 @@ static char *mdecodeRFC2047(char *string, int length, char *charsetsave) else if (!strcasecmp("b", encoding)) { /* base64 decoding */ int len; + size_t charsetlen; #ifdef HAVE_ICONV size_t tmplen; char *output2; @@ -926,7 +927,9 @@ static char *mdecodeRFC2047(char *string, int length, char *charsetsave) memcpy(output,output2,tmplen); output += tmplen; free(output2); - memcpy(charsetsave,charset,strlen(charset)<255 ? strlen(charset) : 255 ); + charsetlen = strlen(charset) < 255 ? strlen(charset) : 255; + memcpy(charsetsave,charset,charsetlen); + charsetsave[charsetlen] = '\0'; #else base64Decode(ptr, output, &len); output += len;