From 628cf979b249fa76a80962e2eefe05073216a4db Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 18 Dec 2017 22:33:51 -0500 Subject: [PATCH] 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. --- src/locale/iconv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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); -- 2.25.1