mirror of
https://github.com/stedolan/jq.git
synced 2024-05-11 05:55:39 +00:00
Fix #802
This commit is contained in:
5
jv.c
5
jv.c
@@ -717,7 +717,10 @@ jv jv_string_implode(jv j) {
|
||||
for (i = 0; i < len; i++) {
|
||||
jv n = jv_array_get(jv_copy(j), i);
|
||||
assert(jv_get_kind(n) == JV_KIND_NUMBER);
|
||||
s = jv_string_append_codepoint(s, jv_number_value(n));
|
||||
int nv = jv_number_value(n);
|
||||
if (nv > 0x10FFFF)
|
||||
nv = 0xFFFD; // U+FFFD REPLACEMENT CHARACTER
|
||||
s = jv_string_append_codepoint(s, nv);
|
||||
}
|
||||
|
||||
jv_free(j);
|
||||
|
||||
@@ -447,7 +447,8 @@ static pfunc found_string(struct jv_parser* p) {
|
||||
codepoint = 0x10000 + (((codepoint - 0xD800) << 10)
|
||||
|(surrogate - 0xDC00));
|
||||
}
|
||||
// FIXME assert valid codepoint
|
||||
if (codepoint > 0x10FFFF)
|
||||
codepoint = 0xFFFD; // U+FFFD REPLACEMENT CHARACTER
|
||||
out += jvp_utf8_encode(codepoint, out);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user