Issue #857: fix a few places where json_tokener should have been returning json_tokener_error_memory but wasn't.

This commit is contained in:
Eric Hawicz
2024-04-21 10:37:16 -04:00
parent 0051f2dbe0
commit 31a22fb2da

View File

@@ -344,6 +344,7 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char *
newloc = newlocale(LC_NUMERIC_MASK, "C", duploc);
if (newloc == NULL)
{
tok->err = json_tokener_error_memory;
freelocale(duploc);
return NULL;
}
@@ -362,7 +363,10 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char *
{
oldlocale = strdup(tmplocale);
if (oldlocale == NULL)
{
tok->err = json_tokener_error_memory;
return NULL;
}
}
setlocale(LC_NUMERIC, "C");
}
@@ -1257,7 +1261,11 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char *
goto redo_char;
case json_tokener_state_object_value_add:
json_object_object_add(current, obj_field_name, obj);
if (json_object_object_add(current, obj_field_name, obj) != 0)
{
tok->err = json_tokener_error_memory;
goto out;
}
free(obj_field_name);
obj_field_name = NULL;
saved_state = json_tokener_state_object_sep;