Mercurial > vim
diff src/eval.c @ 31626:f5bb69a83d8e v9.0.1145
patch 9.0.1145: invalid memory access with recursive substitute expression
Commit: https://github.com/vim/vim/commit/3ac1d97a1d9353490493d30088256360435f7731
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 4 17:17:54 2023 +0000
patch 9.0.1145: invalid memory access with recursive substitute expression
Problem: Invalid memory access with recursive substitute expression.
Solution: Check the return value of vim_regsub().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 04 Jan 2023 18:30:03 +0100 |
parents | 53c3df37a2b0 |
children | d19377e0a0b4 |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -7312,6 +7312,11 @@ do_string_sub( * - The text after the match. */ sublen = vim_regsub(®match, sub, expr, tail, 0, REGSUB_MAGIC); + if (sublen <= 0) + { + ga_clear(&ga); + break; + } if (ga_grow(&ga, (int)((end - tail) + sublen - (regmatch.endp[0] - regmatch.startp[0]))) == FAIL) {