From cbc8b2c3c8adf97479f44ec74bc50707c14f32a3 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Wed, 9 Apr 2025 18:52:27 +0900 Subject: [PATCH] Fix bug where writing to archive fails sometimes Written bytes was not correctly calculated because it was not checking against actual written-byte count, but was erronously using the prior read-byte count. --- src/archiver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/archiver.c b/src/archiver.c index b6e38bc..a91de60 100644 --- a/src/archiver.c +++ b/src/archiver.c @@ -3307,7 +3307,7 @@ SDArchiverStateRetStruct simple_archiver_write_v1( size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd); if (fread_ret > 0) { size_t fwrite_ret = fwrite(buf, 1, fread_ret, out_f); - written_size += fread_ret; + written_size += fwrite_ret; if (fwrite_ret != fread_ret) { fprintf(stderr, "ERROR: Partial write of read bytes from temp file to " @@ -4282,7 +4282,7 @@ SDArchiverStateRetStruct simple_archiver_write_v2( size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd); if (fread_ret > 0) { size_t fwrite_ret = fwrite(buf, 1, fread_ret, out_f); - written_size += fread_ret; + written_size += fwrite_ret; if (fwrite_ret != fread_ret) { fprintf(stderr, "ERROR: Partial write of read bytes from temp file to " @@ -5516,7 +5516,7 @@ SDArchiverStateRetStruct simple_archiver_write_v3( size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd); if (fread_ret > 0) { size_t fwrite_ret = fwrite(buf, 1, fread_ret, out_f); - written_size += fread_ret; + written_size += fwrite_ret; if (fwrite_ret != fread_ret) { fprintf(stderr, "ERROR: Partial write of read bytes from temp file to " @@ -6688,7 +6688,7 @@ SDArchiverStateRetStruct simple_archiver_write_v4( size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd); if (fread_ret > 0) { size_t fwrite_ret = fwrite(buf, 1, fread_ret, out_f); - written_size += fread_ret; + written_size += fwrite_ret; if (fwrite_ret != fread_ret) { fprintf(stderr, "ERROR: Partial write of read bytes from temp file to " -- 2.49.0