changeset 35994:57a48e569353 v9.1.0682

patch 9.1.0682: Vim9: Segfault with uninitialized funcref Commit: https://github.com/vim/vim/commit/cb90ea9cba6f033fe141db0e466fb4117f28402b Author: Ernie Rael <errael@raelity.com> Date: Mon Aug 19 21:45:23 2024 +0200 patch 9.1.0682: Vim9: Segfault with uninitialized funcref Problem: Vim9: Segfault with uninitialized funcref (Daniel Viberg) Solution: Check the Funcref for being Null before trying to access it (Ernie Rael) fixes: #15523 Signed-off-by: Ernie Rael <errael@raelity.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Mon, 19 Aug 2024 22:00:03 +0200
parents 1666cd879fd5
children 966de9bab608
files src/testdir/test_vim9_func.vim src/userfunc.c src/version.c
diffstat 3 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
index d07bbfba70705d5d371e25907ebb6f9f3ba4cb69..030ff833ef40c1a3f3a5507d280c2e8797cff60a
GIT binary patch
literal 108093
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
Zu$N&F(&GBrlb$%6&Y#W0>=I7={|}J_KlK0r
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -2245,7 +2245,8 @@ find_func_imported(char_u *name, int fla
 	    if (!HASHITEM_EMPTY(hi))
 	    {
 		dictitem_T *di = HI2DI(hi);
-		if (di->di_tv.v_type == VAR_FUNC)
+		if (di->di_tv.v_type == VAR_FUNC
+			&& di->di_tv.vval.v_string != NULL)
 		    func = find_func_even_dead(di->di_tv.vval.v_string, flags);
 	    }
 	}
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    682,
+/**/
     681,
 /**/
     680,