Mercurial > vim
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; }