diff src/insexpand.c @ 34603:02fbe0bd9418 v9.1.0193

patch 9.1.0193: May leak memory in completion when ga_grow() fails Commit: https://github.com/vim/vim/commit/70e566b0bd29189b1baf3dc915b6a98de36fbded Author: zeertzjq <zeertzjq@outlook.com> Date: Thu Mar 21 07:11:58 2024 +0100 patch 9.1.0193: May leak memory in completion when ga_grow() fails Problem: May leak memory in completion when ga_grow() fails. Solution: Free "wca" when ga_grow() fails (zeertzjq). fixes: #14248 closes: #14249 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Thu, 21 Mar 2024 07:15:05 +0100
parents 5a8340e044f4
children 6d3a5ef458cd
line wrap: on
line diff
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -653,7 +653,10 @@ ins_compl_infercase_gettext(
 	    // getting to six bytes from the edge of IObuff switch to using a
 	    // growarray.  Add the character in the next round.
 	    if (ga_grow(&gap, IOSIZE) == FAIL)
+	    {
+		vim_free(wca);
 		return (char_u *)"[failed]";
+	    }
 	    *p = NUL;
 	    STRCPY(gap.ga_data, IObuff);
 	    gap.ga_len = (int)STRLEN(IObuff);