patch 9.0.1638: crypt tests hang and cause memory errors
Problem: crypt tests hang and cause memory errors
Solution: Move variable to start of function.
diff --git a/src/fileio.c b/src/fileio.c
index 4f3b895..8b65baf 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -218,6 +218,7 @@
int using_b_ffname;
int using_b_fname;
static char *msg_is_a_directory = N_("is a directory");
+ int eof = FALSE;
#ifdef FEAT_SODIUM
int may_need_lseek = FALSE;
#endif
@@ -1222,7 +1223,6 @@
size -= conv_restlen;
}
- int eof = FALSE;
if (read_buffer)
{
/*
@@ -1306,8 +1306,8 @@
{
// set size to 8K + Sodium Crypt Metadata
size = WRITEBUFSIZE + crypt_get_max_header_len()
- + crypto_secretstream_xchacha20poly1305_HEADERBYTES
- + crypto_secretstream_xchacha20poly1305_ABYTES;
+ + crypto_secretstream_xchacha20poly1305_HEADERBYTES
+ + crypto_secretstream_xchacha20poly1305_ABYTES;
may_need_lseek = TRUE;
}
@@ -1328,11 +1328,11 @@
}
}
# endif
- eof = size;
- size = read_eintr(fd, ptr, size);
+ long read_size = size;
+ size = read_eintr(fd, ptr, read_size);
filesize_count += size;
// hit end of file
- eof = (size < eof || filesize_count == filesize_disk);
+ eof = (size < read_size || filesize_count == filesize_disk);
}
#ifdef FEAT_CRYPT