]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
archive_write: validate header before arguments (#2315)
authorEmil Velikov <emil.l.velikov@gmail.com>
Fri, 13 Sep 2024 02:15:34 +0000 (03:15 +0100)
committerGitHub <noreply@github.com>
Fri, 13 Sep 2024 02:15:34 +0000 (04:15 +0200)
Fixes: 575e2eab ("Fix handling a negative bytes_per_block values
(#2206)")

Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
libarchive/archive_write.c

index 01c6843613b2f1c64474330edeaa7d2e21989b28..e1a4f34bfc3cd3080dde723a79e6890a7f724d4f 100644 (file)
@@ -129,13 +129,14 @@ archive_write_new(void)
 int
 archive_write_set_bytes_per_block(struct archive *_a, int bytes_per_block)
 {
+       struct archive_write *a = (struct archive_write *)_a;
+       archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
+           ARCHIVE_STATE_NEW, "archive_write_set_bytes_per_block");
+
        if (bytes_per_block < 0) {
                // Do nothing if the bytes_per_block is negative
                return 0;
        }
-       struct archive_write *a = (struct archive_write *)_a;
-       archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
-           ARCHIVE_STATE_NEW, "archive_write_set_bytes_per_block");
        a->bytes_per_block = bytes_per_block;
        return (ARCHIVE_OK);
 }