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:
@@ -344,6 +344,7 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char *
|
|||||||
newloc = newlocale(LC_NUMERIC_MASK, "C", duploc);
|
newloc = newlocale(LC_NUMERIC_MASK, "C", duploc);
|
||||||
if (newloc == NULL)
|
if (newloc == NULL)
|
||||||
{
|
{
|
||||||
|
tok->err = json_tokener_error_memory;
|
||||||
freelocale(duploc);
|
freelocale(duploc);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -362,7 +363,10 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char *
|
|||||||
{
|
{
|
||||||
oldlocale = strdup(tmplocale);
|
oldlocale = strdup(tmplocale);
|
||||||
if (oldlocale == NULL)
|
if (oldlocale == NULL)
|
||||||
|
{
|
||||||
|
tok->err = json_tokener_error_memory;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
setlocale(LC_NUMERIC, "C");
|
setlocale(LC_NUMERIC, "C");
|
||||||
}
|
}
|
||||||
@@ -1257,7 +1261,11 @@ struct json_object *json_tokener_parse_ex(struct json_tokener *tok, const char *
|
|||||||
goto redo_char;
|
goto redo_char;
|
||||||
|
|
||||||
case json_tokener_state_object_value_add:
|
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);
|
free(obj_field_name);
|
||||||
obj_field_name = NULL;
|
obj_field_name = NULL;
|
||||||
saved_state = json_tokener_state_object_sep;
|
saved_state = json_tokener_state_object_sep;
|
||||||
|
|||||||
Reference in New Issue
Block a user