comparison src/json.c @ 7716:9d79943791ea v7.4.1156

commit https://github.com/vim/vim/commit/2dedb45260604911035cff2364aca90a69156ed9 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 23 21:38:51 2016 +0100 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.
author Christian Brabandt <cb@256bit.org>
date Sat, 23 Jan 2016 21:45:04 +0100
parents bce3b5ddb393
children 87f3f9536ecf
comparison
equal deleted inserted replaced
7715:a1465a06a3e4 7716:9d79943791ea
316 { 316 {
317 clear_tv(&item); 317 clear_tv(&item);
318 goto fail; 318 goto fail;
319 } 319 }
320 di->di_tv = item; 320 di->di_tv = item;
321 dict_add(res->vval.v_dict, di); 321 if (dict_add(res->vval.v_dict, di) == FAIL)
322 dictitem_free(di);
322 323
323 json_skip_white(reader); 324 json_skip_white(reader);
324 p = reader->js_buf + reader->js_used; 325 p = reader->js_buf + reader->js_used;
325 if (*p == ',') 326 if (*p == ',')
326 ++reader->js_used; 327 ++reader->js_used;
396 reader->js_used = (int)(p - reader->js_buf); 397 reader->js_used = (int)(p - reader->js_buf);
397 if (*p == '"') 398 if (*p == '"')
398 { 399 {
399 ++reader->js_used; 400 ++reader->js_used;
400 res->v_type = VAR_STRING; 401 res->v_type = VAR_STRING;
401 res->vval.v_string = vim_strsave(ga.ga_data); 402 if (ga.ga_data == NULL)
403 res->vval.v_string = NULL;
404 else
405 res->vval.v_string = vim_strsave(ga.ga_data);
402 } 406 }
403 else 407 else
404 { 408 {
405 res->v_type = VAR_SPECIAL; 409 res->v_type = VAR_SPECIAL;
406 res->vval.v_number = VVAL_NONE; 410 res->vval.v_number = VVAL_NONE;