]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
7zip: Fix format modifier in init_decompression
authorTobias Stoeckmann <tobias@stoeckmann.org>
Tue, 26 May 2026 19:16:28 +0000 (21:16 +0200)
committerTobias Stoeckmann <tobias@stoeckmann.org>
Tue, 26 May 2026 19:16:28 +0000 (21:16 +0200)
The codec field is of type uint64_t, which is an unsigned long on many
64 bit platforms (LP64), but 32 bit platforms and LLP64 platforms cannot
use the l modifier for correct output.

Cast to uintmax_t for portable j support.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
libarchive/archive_read_support_format_7zip.c

index ebd65095814c7bdb3413f77a16903c45c5dfac83..52cbfd683e67db4f2d70106a2e77b7cd15b15664 100644 (file)
@@ -1363,8 +1363,9 @@ init_decompression(struct archive_read *a, struct _7zip *zip,
                            coder2->codec != _7Z_SPARC) {
                                archive_set_error(&a->archive,
                                    ARCHIVE_ERRNO_MISC,
-                                   "Unsupported filter %lx for %lx",
-                                   coder2->codec, coder1->codec);
+                                   "Unsupported filter %jx for %jx",
+                                   (uintmax_t)coder2->codec,
+                                   (uintmax_t)coder1->codec);
                                return (ARCHIVE_FAILED);
                        }
                        zip->codec2 = coder2->codec;