diff options
author | bfredl <bjorn.linse@gmail.com> | 2023-08-27 11:26:54 +0200 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2023-08-27 12:08:11 +0200 |
commit | 840749d6c971f93aa9744bd6f76b383f11043463 (patch) | |
tree | e9ed01feacbc4be34b96faf46e4baa1a8c83de16 /src | |
parent | 9b9030ff2ca820d4c4f4b559f86b0f9a3496645b (diff) | |
download | rneovim-840749d6c971f93aa9744bd6f76b383f11043463.tar.gz rneovim-840749d6c971f93aa9744bd6f76b383f11043463.tar.bz2 rneovim-840749d6c971f93aa9744bd6f76b383f11043463.zip |
fix(undo): fix crash caused by checking undolevels in wrong buffer
fixes #24894
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/undo.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/nvim/undo.c b/src/nvim/undo.c index 552120d4ae..1194eeca35 100644 --- a/src/nvim/undo.c +++ b/src/nvim/undo.c @@ -3208,15 +3208,13 @@ u_header_T *u_force_get_undo_header(buf_T *buf) } // Create the first undo header for the buffer if (!uhp) { - // Undo is normally invoked in change code, which already has swapped - // curbuf. // Args are tricky: this means replace empty range by empty range.. - u_savecommon(curbuf, 0, 1, 1, true); + u_savecommon(buf, 0, 1, 1, true); uhp = buf->b_u_curhead; if (!uhp) { uhp = buf->b_u_newhead; - if (get_undolevel(curbuf) > 0 && !uhp) { + if (get_undolevel(buf) > 0 && !uhp) { abort(); } } |