vim-patch:9.1.0195: memleak with ex_drop, NULL dereference

Problem:  memleak with ex_drop(), NULL dereference
          (zeertzjq)
Solution: revert back to ex_rewind(), use curbuf instead of buf

fixes: vim/vim#14246
closes: vim/vim#14251

85a769d466

Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
zeertzjq 2024-03-22 05:54:12 +08:00
parent 271879dd49
commit dabc44d15c
2 changed files with 4 additions and 4 deletions

View File

@ -866,12 +866,12 @@ void ex_drop(exarg_T *eap)
const int save_ar = curbuf->b_p_ar; const int save_ar = curbuf->b_p_ar;
// reload the file if it is newer // reload the file if it is newer
curbuf->b_p_ar = 1; curbuf->b_p_ar = true;
buf_check_timestamp(curbuf); buf_check_timestamp(curbuf);
curbuf->b_p_ar = save_ar; curbuf->b_p_ar = save_ar;
} }
if (buf->b_ml.ml_flags & ML_EMPTY) { if (curbuf->b_ml.ml_flags & ML_EMPTY) {
open_buffer(false, eap, 0); ex_rewind(eap);
} }
return; return;
} }

View File

@ -72,7 +72,7 @@ describe(':drop', function()
lazy dogs | lazy dogs |
{0:~ }|*6 {0:~ }|*6
{1:Xdrop_modified.txt [+] }| {1:Xdrop_modified.txt [+] }|
"Xdrop_modified.txt" [New] | :drop Xdrop_modified.txt |
]]) ]])
end) end)
end) end)