From 2af20746e61f347c542e79ddcf030ccb593d7169 Mon Sep 17 00:00:00 2001 From: subotac <73706465+subotac@users.noreply.github.com> Date: Sat, 8 Aug 2026 14:31:04 +0300 Subject: [PATCH] Return fatal when closing a failed writer Once an archive writer enters the fatal state, close should report that failure instead of proceeding as though it were usable. Resolves #3353 --- libarchive/archive_write.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c index 6c7a4d1f..fca2c188 100644 --- a/libarchive/archive_write.c +++ b/libarchive/archive_write.c @@ -641,8 +641,7 @@ _archive_write_close(struct archive *_a) int r = ARCHIVE_OK, r1 = ARCHIVE_OK; archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC, - ARCHIVE_STATE_ANY | ARCHIVE_STATE_FATAL, - "archive_write_close"); + ARCHIVE_STATE_ANY, "archive_write_close"); if (a->archive.state == ARCHIVE_STATE_NEW || a->archive.state == ARCHIVE_STATE_CLOSED) return (ARCHIVE_OK); /* Okay to close() when not open. */