From: Leon Winter Date: Mon, 31 Jan 2022 10:52:35 +0000 (+0000) Subject: Account for failing utf-8 library call X-Git-Tag: exim-4.96-RC0~85 X-Git-Url: https://git.exim.org/exim.git/commitdiff_plain/d2f99aad044da58c05bd198ef3a6c9e0563e62ee Account for failing utf-8 library call --- diff --git a/src/src/utf8.c b/src/src/utf8.c index 529a9a660..2bc81e839 100644 --- a/src/src/utf8.c +++ b/src/src/utf8.c @@ -133,7 +133,7 @@ return s; uschar * string_localpart_utf8_to_alabel(const uschar * utf8, uschar ** err) { -size_t ucs4_len; +size_t ucs4_len = 0; punycode_uint * p; size_t p_len; uschar * res; @@ -142,6 +142,11 @@ int rc; if (!string_is_utf8(utf8)) return string_copy(utf8); p = (punycode_uint *) stringprep_utf8_to_ucs4(CCS utf8, -1, &ucs4_len); +if (!p || !ucs4_len) + { + if (err) *err = US"l_u2a: bad UTF-8 input"; + return NULL; + } p_len = ucs4_len*4; /* this multiplier is pure guesswork */ res = store_get(p_len+5, is_tainted(utf8));