diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-12-23 14:52:16 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-12-23 14:52:16 +0000 |
commit | 4d73076b3143502bf5d000789e0d31cd0a7dd7e5 (patch) | |
tree | 6628478f11079b54556f7bac9e6eb9d4ebf3a5be /src/libmime/mime_encoding.c | |
parent | 09dc8428a676fc13a172551666a772fb427f9ad0 (diff) | |
download | rspamd-4d73076b3143502bf5d000789e0d31cd0a7dd7e5.tar.gz rspamd-4d73076b3143502bf5d000789e0d31cd0a7dd7e5.zip |
[Fix] Fix byte array expansion during toutf8 conversion
Diffstat (limited to 'src/libmime/mime_encoding.c')
-rw-r--r-- | src/libmime/mime_encoding.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libmime/mime_encoding.c b/src/libmime/mime_encoding.c index bd339d986..dae93c89c 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: |