From b66f395ff444643852e3539b849267658e885bf4 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 24 Apr 2024 19:54:02 +0800 Subject: vim-patch:8.2.4974: ":so" command may read after end of buffer Problem: ":so" command may read after end of buffer. Solution: Compute length of text properly. https://github.com/vim/vim/commit/4748c4bd64610cf943a431d215bb1aad51f8d0b4 Co-authored-by: Bram Moolenaar --- src/nvim/runtime.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/runtime.c b/src/nvim/runtime.c index 85af98f9ce..86ca4f08dc 100644 --- a/src/nvim/runtime.c +++ b/src/nvim/runtime.c @@ -2726,6 +2726,7 @@ static char *get_one_sourceline(source_cookie_T *sp) ga_grow(&ga, 1); buf = (char *)ga.ga_data; buf[ga.ga_len++] = NUL; + len = ga.ga_len; } else { buf = ga.ga_data; retry: @@ -2736,8 +2737,8 @@ retry: } break; } + len = ga.ga_len + (int)strlen(buf + ga.ga_len); } - len = ga.ga_len + (int)strlen(buf + ga.ga_len); #ifdef USE_CRNL // Ignore a trailing CTRL-Z, when in Dos mode. Only recognize the // CTRL-Z by its own, or after a NL. -- cgit