From: Heinrich Schuchardt Date: Fri, 15 Feb 2019 21:20:53 +0000 (+0100) Subject: lib/vsprintf: print '?' for illegal Unicode sequence X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=60c4454ddb98cb3e194483fb66652e0bb2552761;p=u-boot.git lib/vsprintf: print '?' for illegal Unicode sequence Commit 0e66c10a7d80 ("lib: vsprintf: avoid overflow printing UTF16 strings") broke the Unicode unit tests: an illegal UTF16 code point should be printed as '?'. Fixes: 0e66c10a7d80 ("lib: vsprintf: avoid overflow printing UTF16 strings") Signed-off-by: Heinrich Schuchardt --- diff --git a/lib/vsprintf.c b/lib/vsprintf.c index de5db1aa5c..1b6c154d8d 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -288,6 +288,8 @@ static char *string16(char *buf, char *end, u16 *s, int field_width, for (i = 0; i < len && buf + utf16_utf8_strnlen(str, 1) <= end; ++i) { s32 s = utf16_get(&str); + if (s < 0) + s = '?'; utf8_put(s, &buf); } for (; len < field_width; --field_width)