aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmime/mime_encoding.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-23 14:52:16 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2016-12-23 14:52:16 +0000
commit4d73076b3143502bf5d000789e0d31cd0a7dd7e5 (patch)
tree6628478f11079b54556f7bac9e6eb9d4ebf3a5be /src/libmime/mime_encoding.c
parent09dc8428a676fc13a172551666a772fb427f9ad0 (diff)
downloadrspamd-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.c6
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: