summaryrefslogtreecommitdiff
path: root/src/undo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/undo.c')
-rw-r--r--src/undo.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/undo.c b/src/undo.c
index 35fa31064..787f62590 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1286,11 +1286,12 @@ u_write_undo(name, forceit, buf, hash)
}
else
{
- char_u buf[2];
+ char_u buf[2];
+ int len;
- vim_read(fd, buf, 2);
+ len = vim_read(fd, buf, 2);
close(fd);
- if ((buf[0] << 8) + buf[1] != UF_START_MAGIC)
+ if (len < 2 || (buf[0] << 8) + buf[1] != UF_START_MAGIC)
{
if (name != NULL || p_verbose > 0)
smsg((char_u *)_("Will not overwrite, this is not an undo file: %s"),