From: John Marriott Date: Mon, 22 Dec 2025 18:49:43 +0000 (+0000) Subject: patch 9.1.2010: Missing out-of-memory checks in vim9class.c X-Git-Tag: v9.1.2010^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a90e80411accf01ee55a901d9fd673609de3e6f7;p=thirdparty%2Fvim.git patch 9.1.2010: Missing out-of-memory checks in vim9class.c Problem: Missing out-of-memory checks in vim9class.c (after v9.1.2000) Solution: Return FAIL early (John Marriott) closes: #18991 Signed-off-by: John Marriott Signed-off-by: Christian Brabandt --- diff --git a/src/version.c b/src/version.c index 28336399bc..dd8fdd6672 100644 --- a/src/version.c +++ b/src/version.c @@ -734,6 +734,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 2010, /**/ 2009, /**/ diff --git a/src/vim9class.c b/src/vim9class.c index e5b811b915..409bb50f73 100644 --- a/src/vim9class.c +++ b/src/vim9class.c @@ -179,7 +179,10 @@ add_member( m->ocm_name.length = (size_t)(varname_end - varname); m->ocm_name.string = vim_strnsave(varname, m->ocm_name.length); if (m->ocm_name.string == NULL) + { m->ocm_name.length = 0; + return FAIL; + } m->ocm_access = has_public ? VIM_ACCESS_ALL : *varname == '_' ? VIM_ACCESS_PRIVATE : VIM_ACCESS_READ; if (has_final) @@ -230,7 +233,10 @@ add_members_to_class( *m = parent_members[i]; m->ocm_name.string = vim_strnsave(m->ocm_name.string, m->ocm_name.length); if (m->ocm_name.string == NULL) + { m->ocm_name.length = 0; + return FAIL; + } if (m->ocm_init != NULL) m->ocm_init = vim_strsave(m->ocm_init); }