Also don't treat an empty buffer as JSON.

That also keeps us from looking at the non-existent first octet of an
empty buffer.

Bug: 16031
Change-Id: I3fcf4201d21dc44ccd8815cb0637c1eae4995560
Reviewed-on: https://code.wireshark.org/review/34439
Petri-Dish: Guy Harris <guy@alum.mit.edu>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
Guy Harris 2019-09-02 20:02:59 -07:00
parent 6b28772660
commit fd425b195c
1 changed files with 7 additions and 3 deletions

View File

@ -37,12 +37,16 @@ json_validate(const guint8 *buf, const size_t len)
return FALSE;
/*
* Make sure the first octet isn't a NUL; otherwise, the parser will
* immediately stop parsing and not validate anything after that,
* so it'll just think it was handed an empty string.
* Make sure the buffer isn't empty and the first octet isn't a NUL;
* otherwise, the parser will immediately stop parsing and not validate
* anything after that, so it'll just think it was handed an empty string.
*
* XXX - should we check for NULs anywhere in the buffer?
*/
if (len == 0) {
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "jsmn: JSON string is empty");
return FALSE;
}
if (buf[0] == '\0') {
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_DEBUG, "jsmn: invalid character inside JSON string");
return FALSE;