aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-11-16 19:35:46 +0100
committerEliseo Martínez <eliseomarmol@gmail.com>2014-11-18 21:57:48 +0100
commitd3f413ba6a4e9fc36712f787bc120eb028f39cae (patch)
tree0cde18f0b02fe7ea5c44935da078341d440b1068
parentf47d52ea4f260ad07e2eed8c7c2ae39a484dc282 (diff)
downloadrneovim-d3f413ba6a4e9fc36712f787bc120eb028f39cae.tar.gz
rneovim-d3f413ba6a4e9fc36712f787bc120eb028f39cae.tar.bz2
rneovim-d3f413ba6a4e9fc36712f787bc120eb028f39cae.zip
Fix warnings: eval.c: set_var_lval(): Np dereference: FP.
Problem : Dereference of null pointer @ 2273. Diagnostic : False positive. Rationale : Suggested error would happen when assigning an rvalue with more items than the lvalue. Then we would enter conditional at: ``` if (lp->ll_li->li_next == NULL) { /* Need to add an empty item. */ list_append_number(lp->ll_list, 0); } lp->ll_li = lp->ll_li->li_next; ``` Analyzer thinks the value assigned to lp->ll_li is still NULL and is hit on the next iteration. Resolution : Assert lp->ll_li->li_next is not null anymore after list_append_number().
-rw-r--r--src/nvim/eval.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 498795dc38..d7f820ae78 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -2272,6 +2272,7 @@ static void set_var_lval(lval_T *lp, char_u *endp, typval_T *rettv, int copy, ch
if (lp->ll_li->li_next == NULL) {
/* Need to add an empty item. */
list_append_number(lp->ll_list, 0);
+ assert(lp->ll_li->li_next);
}
lp->ll_li = lp->ll_li->li_next;
++lp->ll_n1;