diff src/eval.c @ 19081:3b1f83fdaabc v8.2.0101

patch 8.2.0101: crash when passing null object to ":echomsg" Commit: https://github.com/vim/vim/commit/9db2afe46d3208775d1c3075bbee073a17f8fdc6 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jan 8 18:56:20 2020 +0100 patch 8.2.0101: crash when passing null object to ":echomsg" Problem: Crash when passing null object to ":echomsg". Solution: Check for NULL pointer. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/5460)
author Bram Moolenaar <Bram@vim.org>
date Wed, 08 Jan 2020 19:00:04 +0100
parents a3fce2763e83
children fd1070ff696b
line wrap: on
line diff
--- 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)
 	    {