cJSON

mirror of Dave's cJSON
git clone git://git.thc420.xyz/cJSON
Log | Files | Refs | README | LICENSE

commit 29f312dd699cf9eaf4635c59626c970833312047
parent 4fce9cce865a2605c022fa2455dc0ace8c836c89
Author: Max Bruckner <max@maxbruckner.de>
Date:   Sun, 26 Feb 2017 13:12:26 +0100

Merge pull request #118 from mjerris/parser

prevent read beyond end of buffer when string ends with malformed utf
Diffstat:
McJSON.c | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/cJSON.c b/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 sequence_length = 0; - /* get the first utf16 sequence */ - first_code = parse_hex4(first_sequence + 2); if ((input_end - first_sequence) < 6) { /* input ends unexpectedly */ @@ -431,6 +429,9 @@ static unsigned char utf16_literal_to_utf8(const unsigned char * const input_poi goto fail; } + /* get the first utf16 sequence */ + first_code = parse_hex4(first_sequence + 2); + /* check that the code is valid */ if (((first_code >= 0xDC00) && (first_code <= 0xDFFF)) || (first_code == 0)) {