patch 7.4.1156
Problem: Coverity warns for NULL pointer and ignoring return value.
Solution: Check for NULL pointer. When dict_add() returns FAIL free the item.
diff --git a/src/json.c b/src/json.c
index 7b67994..442eaff 100644
--- a/src/json.c
+++ b/src/json.c
@@ -318,7 +318,8 @@
goto fail;
}
di->di_tv = item;
- dict_add(res->vval.v_dict, di);
+ if (dict_add(res->vval.v_dict, di) == FAIL)
+ dictitem_free(di);
json_skip_white(reader);
p = reader->js_buf + reader->js_used;
@@ -398,7 +399,10 @@
{
++reader->js_used;
res->v_type = VAR_STRING;
- res->vval.v_string = vim_strsave(ga.ga_data);
+ if (ga.ga_data == NULL)
+ res->vval.v_string = NULL;
+ else
+ res->vval.v_string = vim_strsave(ga.ga_data);
}
else
{