From: Vsevolod Stakhov Date: Fri, 23 Dec 2016 14:52:16 +0000 (+0000) Subject: [Fix] Fix byte array expansion during toutf8 conversion X-Git-Tag: 1.5.0~492 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d73076b3143502bf5d000789e0d31cd0a7dd7e5;p=thirdparty%2Frspamd.git [Fix] Fix byte array expansion during toutf8 conversion --- diff --git a/src/libmime/mime_encoding.c b/src/libmime/mime_encoding.c index bd339d986e..dae93c89ca 100644 --- a/src/libmime/mime_encoding.c +++ b/src/libmime/mime_encoding.c @@ -227,7 +227,7 @@ rspamd_mime_to_utf8_byte_array (GByteArray *in, } /* Preallocate for half of characters to be converted */ - outlen = inremain + inremain / 2 + 1; + outlen = inremain * 2 + 1; g_byte_array_set_size (out, outlen); s = in->data; d = out->data; @@ -243,11 +243,11 @@ rspamd_mime_to_utf8_byte_array (GByteArray *in, /* Enlarge string */ if (inremain > 0) { pos = outlen; - outlen += inremain * 2; + outlen += inremain * 4; + remain += inremain * 4; /* May cause reallocate, so store previous len in pos */ g_byte_array_set_size (out, outlen); d = out->data + pos; - remain = outlen - pos; } break; case EILSEQ: