aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/undo.c
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-10-04 18:33:21 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-10-05 18:18:14 -0400
commit8bd38863e61800ece97d88e4d1543d007a5055a6 (patch)
tree9f29309376a26d7f807fc9ee5ac423505ea985b0 /src/nvim/undo.c
parentda5bd45e5a8166119a396cdd8d6a39d309a944c5 (diff)
downloadrneovim-8bd38863e61800ece97d88e4d1543d007a5055a6.tar.gz
rneovim-8bd38863e61800ece97d88e4d1543d007a5055a6.tar.bz2
rneovim-8bd38863e61800ece97d88e4d1543d007a5055a6.zip
vim-patch:8.1.1812: reading a truncted undo file hangs Vim
Problem: Reading a truncted undo file hangs Vim. Solution: Check for reading EOF. (closes vim/vim#4769) https://github.com/vim/vim/commit/fb06d767a8d76eead5391302fc88115d6e3879d8
Diffstat (limited to 'src/nvim/undo.c')
-rw-r--r--src/nvim/undo.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/nvim/undo.c b/src/nvim/undo.c
index 903e57732f..6c5a6cdb46 100644
--- a/src/nvim/undo.c
+++ b/src/nvim/undo.c
@@ -878,7 +878,12 @@ static u_header_T *unserialize_uhp(bufinfo_T *bi,
for (;; ) {
int len = undo_read_byte(bi);
- if (len == 0 || len == EOF) {
+ if (len == EOF) {
+ corruption_error("truncated", file_name);
+ u_free_uhp(uhp);
+ return NULL;
+ }
+ if (len == 0) {
break;
}
int what = undo_read_byte(bi);