From a8742efe42d72e25a8c5041db35115dbf4fa6c45 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Thu, 19 Oct 2017 18:33:27 +0100 Subject: mime: limit bas64-encoded lines length to 76 characters --- lib/mime.c | 4 ++-- tests/data/test648 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/mime.c b/lib/mime.c index c3c370891..d9b7f524e 100644 --- a/lib/mime.c +++ b/lib/mime.c @@ -406,7 +406,7 @@ static size_t encoder_base64_read(char *buffer, size_t size, bool ateof, while(st->bufbeg < st->bufend) { /* Line full ? */ - if(st->pos >= MAX_ENCODED_LINE_LENGTH - 4) { + if(st->pos > MAX_ENCODED_LINE_LENGTH - 4) { /* Yes, we need 2 characters for CRLF. */ if(size < 2) break; @@ -421,7 +421,7 @@ static size_t encoder_base64_read(char *buffer, size_t size, bool ateof, if(size < 4 || st->bufend - st->bufbeg < 3) break; - /* Encode three bytes a four characters. */ + /* Encode three bytes as four characters. */ i = st->buf[st->bufbeg++] & 0xFF; i = (i << 8) | (st->buf[st->bufbeg++] & 0xFF); i = (i << 8) | (st->buf[st->bufbeg++] & 0xFF); diff --git a/tests/data/test648 b/tests/data/test648 index cd8f02085..a2b227bcf 100644 --- a/tests/data/test648 +++ b/tests/data/test648 @@ -66,8 +66,8 @@ This is the e-mail inline text with a very long line containing the special= Content-Disposition: attachment; filename="test648.txt" Content-Transfer-Encoding: base64 -VGhpcyBpcyBhbiBhdHRhY2hlZCBmaWxlLgoKSXQgbWF5IGNvbnRhaW4gYW55IHR5cGUgb2Yg -ZGF0YSBhbmQgd2lsbCBiZSBlbmNvZGVkIGluIGJhc2U2NCBmb3IgdHJhbnNmZXIuCg== +VGhpcyBpcyBhbiBhdHRhY2hlZCBmaWxlLgoKSXQgbWF5IGNvbnRhaW4gYW55IHR5cGUgb2YgZGF0 +YSBhbmQgd2lsbCBiZSBlbmNvZGVkIGluIGJhc2U2NCBmb3IgdHJhbnNmZXIuCg== -------------------------------- . -- cgit v1.2.3