From 2c8c561bc40847ef27b7b90502f20c6fa983ae1f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mat=C3=BA=C5=A1=20Olek=C5=A1=C3=A1k?= Date: Wed, 8 Apr 2020 20:48:16 +0200 Subject: [PATCH] zstd: Add support for files created with pzstd --- libarchive/archive_read_support_filter_zstd.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libarchive/archive_read_support_filter_zstd.c b/libarchive/archive_read_support_filter_zstd.c index c8bb36be7..af7eeb7c1 100644 --- a/libarchive/archive_read_support_filter_zstd.c +++ b/libarchive/archive_read_support_filter_zstd.c @@ -119,6 +119,8 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self, /* Zstd frame magic values */ const unsigned zstd_magic = 0xFD2FB528U; + const unsigned zstd_magic_skippable_start = 0x184D2A50U; + const unsigned zstd_magic_skippable_mask = 0xFFFFFFF0; (void) self; /* UNUSED */ @@ -129,6 +131,8 @@ zstd_bidder_bid(struct archive_read_filter_bidder *self, prefix = archive_le32dec(buffer); if (prefix == zstd_magic) return (32); + if ((prefix & zstd_magic_skippable_mask) == zstd_magic_skippable_start) + return (32); return (0); } -- 2.47.2