]> git.seodisparate.com - SimpleArchiver/commitdiff
Fix v1 archive decompression
authorStephen Seo <seo.disparate@gmail.com>
Mon, 30 Sep 2024 06:45:48 +0000 (15:45 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Wed, 2 Oct 2024 06:11:23 +0000 (15:11 +0900)
Previous implementation sent too many bytes to decompressor if size was
less than 1024.

src/archiver.c

index 4ed4ed37d342e317c600a08c4af15be88eaff6b5..e8804892ce6c818d9bbdc770ae239eb6d749f124 100644 (file)
@@ -2713,8 +2713,10 @@ int simple_archiver_parse_archive_version_1(FILE *in_f, int_fast8_t do_extract,
             fprintf(stderr, "ERROR Failed to read chunk for decompressing!\n");
             return SDAS_INTERNAL_ERROR;
           }
-          ssize_t write_ret = write(pipe_into_cmd[1], buf, 1024);
-          if (write_ret > 0 && (size_t)write_ret == 1024) {
+          ssize_t write_ret =
+              write(pipe_into_cmd[1], buf, chunk_size - chunk_written);
+          if (write_ret > 0 &&
+              (size_t)write_ret == chunk_size - chunk_written) {
             // Successful write.
           } else if (write_ret == -1) {
             fprintf(stderr,