]> source.dussan.org Git - rspamd.git/commitdiff
[Fix] Fix byte array expansion during toutf8 conversion
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 23 Dec 2016 14:52:16 +0000 (14:52 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 23 Dec 2016 14:52:16 +0000 (14:52 +0000)
src/libmime/mime_encoding.c

index bd339d986e6bcd02e181f3fe677b1a3bd7a523f6..dae93c89caf1a57dc013085255900b77805ffaed 100644 (file)
@@ -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: