From 5c29452a1e0055640015913ba0c932569f2ad7a1 Mon Sep 17 00:00:00 2001 From: David Hull Date: Wed, 13 Feb 2019 00:21:30 +0000 Subject: [PATCH] Fix decoding of "\uDBFF\uDFFF" surrogate pair. --- c_src/utf8.c | 2 +- test/jiffy_04_string_tests.erl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/c_src/utf8.c b/c_src/utf8.c index cd0c717..878a4f0 100644 --- a/c_src/utf8.c +++ b/c_src/utf8.c @@ -207,7 +207,7 @@ unicode_to_utf8(int c, unsigned char* buf) } else { return -1; } - } else if(c < 0x10FFFF) { + } else if(c <= 0x10FFFF) { buf[0] = (unsigned char) 0xF0 + (c >> 18); buf[1] = (unsigned char) 0x80 + ((c >> 12) & 0x3F); buf[2] = (unsigned char) 0x80 + ((c >> 6) & 0x3F); diff --git a/test/jiffy_04_string_tests.erl b/test/jiffy_04_string_tests.erl index 7cf645d..8c78a1f 100644 --- a/test/jiffy_04_string_tests.erl +++ b/test/jiffy_04_string_tests.erl @@ -108,6 +108,10 @@ cases(uescaped) -> { <<"\"\\uD83D\\uDE0A\"">>, <<240, 159, 152, 138>> + }, + { + <<"\"\\uDBFF\\uDFFF\"">>, + <<244, 143, 191, 191>> } ];