diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-01-08 18:56:20 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-01-08 18:56:20 +0100 |
commit | 9db2afe46d3208775d1c3075bbee073a17f8fdc6 (patch) | |
tree | 324ed0b2e7c0cf5304fc930001307d3642982bc2 /src/eval.c | |
parent | 41a4141ecb36cd871c6e87f6fbc12fa81653b6be (diff) |
patch 8.2.0101: crash when passing null object to ":echomsg"v8.2.0101
Problem: Crash when passing null object to ":echomsg".
Solution: Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c index 2a2d9d463e..6e88c5c218 100644 --- a/src/eval.c +++ b/src/eval.c @@ -5682,6 +5682,7 @@ tv_stringify(typval_T *varp, char_u *buf) { if (varp->v_type == VAR_LIST || varp->v_type == VAR_DICT + || varp->v_type == VAR_BLOB || varp->v_type == VAR_FUNC || varp->v_type == VAR_PARTIAL || varp->v_type == VAR_FLOAT) @@ -6057,6 +6058,12 @@ ex_execute(exarg_T *eap) p = tv_get_string_buf(&rettv, buf); else p = tv_stringify(&rettv, buf); + if (p == NULL) + { + clear_tv(&rettv); + ret = FAIL; + break; + } len = (int)STRLEN(p); if (ga_grow(&ga, len + 2) == FAIL) { |