From 438d0c5e58aa475179ade9a1b99013733c5b8f06 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 17 Jun 2023 15:00:27 +0100 Subject: [PATCH] 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. --- src/fileio.c | 12 ++++++------ src/version.c | 2 ++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/fileio.c b/src/fileio.c index 4f3b895f2b..8b65baf62a 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -218,6 +218,7 @@ readfile( 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 @@ retry: size -= conv_restlen; } - int eof = FALSE; if (read_buffer) { /* @@ -1306,8 +1306,8 @@ retry: { // 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 @@ retry: } } # 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 diff --git a/src/version.c b/src/version.c index a91e6fb0e7..9488cdac01 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1638, /**/ 1637, /**/ -- 2.39.5