diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2016-04-20 13:44:12 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2016-04-21 18:11:06 +0200 |
commit | ce17d031805ab548f26f5b2d519fb8e3bf1bbff1 (patch) | |
tree | 24afb43c916063c690d7a8f5fb319cac407aeb01 /src/nvim/eval.c | |
parent | a7a0bf54e3f339f7bf1f97dee44546cdcd926b1d (diff) | |
download | rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.tar.gz rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.tar.bz2 rneovim-ce17d031805ab548f26f5b2d519fb8e3bf1bbff1.zip |
eval: let getreg() return valid list for an undefined register
vim-patch:7.4.1755
this prevents a crash when the list is used in setreg() later
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index e9b1df6367..b51480afc6 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -10096,9 +10096,10 @@ static void f_getreg(typval_T *argvars, typval_T *rettv) rettv->v_type = VAR_LIST; rettv->vval.v_list = get_reg_contents(regname, (arg2 ? kGRegExprSrc : 0) | kGRegList); - if (rettv->vval.v_list != NULL) { - rettv->vval.v_list->lv_refcount++; + if (rettv->vval.v_list == NULL) { + rettv->vval.v_list = list_alloc(); } + rettv->vval.v_list->lv_refcount++; } else { rettv->v_type = VAR_STRING; rettv->vval.v_string = get_reg_contents(regname, arg2 ? kGRegExprSrc : 0); |