From: Rich Felker Date: Tue, 19 Dec 2017 03:33:51 +0000 (-0500) Subject: fix iconv output of surrogate pairs in ucs2 X-Git-Tag: v1.1.19~26 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=628cf979b249fa76a80962e2eefe05073216a4db;p=oweals%2Fmusl.git fix iconv output of surrogate pairs in ucs2 in the unified code for handling utf-16 and ucs2 output, the check for ucs2 wrongly looked at the source charset rather than the destination charset. --- diff --git a/src/locale/iconv.c b/src/locale/iconv.c index c5dd122f..d469856c 100644 --- a/src/locale/iconv.c +++ b/src/locale/iconv.c @@ -630,7 +630,7 @@ size_t iconv(iconv_t cd, char **restrict in, size_t *restrict inb, char **restri case UTF_16: case UTF_16BE: case UTF_16LE: - if (c < 0x10000 || type-UCS2BE < 2U) { + if (c < 0x10000 || totype-UCS2BE < 2U) { if (c >= 0x10000) c = 0xFFFD; if (*outb < 2) goto toobig; put_16((void *)*out, c, totype);