json: Fix buffer overflow in cJSON.c
authorWerner Koch <wk@gnupg.org>
Mon, 16 Jul 2018 10:34:52 +0000 (12:34 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 16 Jul 2018 10:37:06 +0000 (12:37 +0200)
commit013a7f47ab486c380b3c97637d3b15f11de74fe8
treeb0ef2dffc2b603fafa7cd623e8e4b7585d1f6c65
parent1bb3f8409d4bbec403bea768184a691d9d7ea42d
json: Fix buffer overflow in cJSON.c

* src/cJSON.c (parse_string): Correctly detect bad hex.
--

The call to parse_hex4 checks that only hex digits follow and in the
error case returns 0.  However, by the time of the combined check for
an invalid value and the error PTR has already been set to the last
hex character and thus if the end-of-string or a quote character was
one of the bad hex digits the loop will miss the end of the string
which does not match with the simple buffer length allocation test at
the begin of the function.

Signed-off-by: Werner Koch <wk@gnupg.org>
src/cJSON.c