X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Frfc2047.c;h=f7085007a8df5ecf10b7fde81b4c8b86bc9124fd;hb=aa81ee147537e2b6c2affb90749fb35cfc996396;hp=6eb56752117bca776ac7f19b6e49769bb7afd444;hpb=9242a7e8cfa94bbc9dd7eca6bd651b569b871c4e;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/rfc2047.c b/src/src/rfc2047.c index 6eb567521..f7085007a 100644 --- a/src/src/rfc2047.c +++ b/src/src/rfc2047.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2017 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* This file contains a function for decoding message header lines that may @@ -46,7 +46,7 @@ rfc2047_qpdecode(uschar *string, uschar **ptrptr) int len = 0; uschar *ptr; -ptr = *ptrptr = store_get(Ustrlen(string) + 1); /* No longer than this */ +ptr = *ptrptr = store_get(Ustrlen(string) + 1, is_tainted(string)); /* No longer than this */ while (*string != 0) { @@ -208,7 +208,7 @@ building the result as we go. The result may be longer than the input if it is translated into a multibyte code such as UTF-8. That's why we use the dynamic string building code. */ -yield = store_get(sizeof(gstring) + ++size); +yield = store_get(sizeof(gstring) + ++size, is_tainted(string)); yield->size = size; yield->ptr = 0; yield->s = US(yield + 1); @@ -222,6 +222,7 @@ while (mimeword) if (mimeword != string) yield = string_catn(yield, string, mimeword - string); +/*XXX that might have to convert an untainted string to a tainted one */ /* Do a charset translation if required. This is supported only on hosts that have the iconv() function. Translation errors set error, but carry on, @@ -300,11 +301,8 @@ while (mimeword) /* Deal with zero values; convert them if requested. */ if (zeroval != 0) - { - int i; - for (i = 0; i < tlen; i++) + for (int i = 0; i < tlen; i++) if (tptr[i] == 0) tptr[i] = zeroval; - } /* Add the new string onto the result */