From: Emil Velikov Date: Fri, 13 Sep 2024 02:15:34 +0000 (+0100) Subject: archive_write: validate header before arguments (#2315) X-Git-Tag: v3.7.5~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1b5d3e4f88827d8d15e597be1b9d64fe4b416ded;p=thirdparty%2Flibarchive.git archive_write: validate header before arguments (#2315) Fixes: 575e2eab ("Fix handling a negative bytes_per_block values (#2206)") Signed-off-by: Emil Velikov --- diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c index 01c684361..e1a4f34bf 100644 --- a/libarchive/archive_write.c +++ b/libarchive/archive_write.c @@ -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); }