changeset 36178:dae96c59b506 v9.1.0739

patch 9.1.0739: [security]: use-after-free in ex_getln.c Commit: https://github.com/vim/vim/commit/a6de28755ec3fcc86d1ed0b744f1b410a8e9702d Author: John Marriott <basilisk@internode.on.net> Date: Sat Sep 21 11:39:02 2024 +0200 patch 9.1.0739: [security]: use-after-free in ex_getln.c Problem: [security]: use-after-free in ex_getln.c Solution: free pointer p a bit later (John Marriott) closes: #15712 Signed-off-by: John Marriott <basilisk@internode.on.net> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 21 Sep 2024 11:45:03 +0200
parents 44e877b017ba
children e134e2d4fe29
files src/ex_getln.c src/version.c
diffstat 2 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -3330,7 +3330,6 @@ realloc_cmdbuff(int len)
     // there, thus copy up to the NUL and add a NUL.
     mch_memmove(ccline.cmdbuff, p, (size_t)ccline.cmdlen);
     ccline.cmdbuff[ccline.cmdlen] = NUL;
-    vim_free(p);
 
     if (ccline.xpc != NULL
 	    && ccline.xpc->xp_pattern != NULL
@@ -3345,6 +3344,8 @@ realloc_cmdbuff(int len)
 	    ccline.xpc->xp_pattern = ccline.cmdbuff + i;
     }
 
+    vim_free(p);
+
     return OK;
 }
 
--- 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 */
 /**/
+    739,
+/**/
     738,
 /**/
     737,