mirror of
https://github.com/DaveGamble/cJSON.git
synced 2023-08-10 21:13:26 +03:00
prevent read beyond end of buffer when string ends with malformed utf
This commit is contained in:
parent
4fce9cce86
commit
72e6e23523
5
cJSON.c
5
cJSON.c
@ -422,8 +422,6 @@ static unsigned char utf16_literal_to_utf8(const unsigned char * const input_poi
|
|||||||
unsigned char utf8_length = 0;
|
unsigned char utf8_length = 0;
|
||||||
unsigned char sequence_length = 0;
|
unsigned char sequence_length = 0;
|
||||||
|
|
||||||
/* get the first utf16 sequence */
|
|
||||||
first_code = parse_hex4(first_sequence + 2);
|
|
||||||
if ((input_end - first_sequence) < 6)
|
if ((input_end - first_sequence) < 6)
|
||||||
{
|
{
|
||||||
/* input ends unexpectedly */
|
/* input ends unexpectedly */
|
||||||
@ -431,6 +429,9 @@ static unsigned char utf16_literal_to_utf8(const unsigned char * const input_poi
|
|||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* get the first utf16 sequence */
|
||||||
|
first_code = parse_hex4(first_sequence + 2);
|
||||||
|
|
||||||
/* check that the code is valid */
|
/* check that the code is valid */
|
||||||
if (((first_code >= 0xDC00) && (first_code <= 0xDFFF)) || (first_code == 0))
|
if (((first_code >= 0xDC00) && (first_code <= 0xDFFF)) || (first_code == 0))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user