From: Michael Tremer Date: Mon, 18 Jan 2021 20:55:32 +0000 (+0000) Subject: libpakfire: archive: Only load support for what we use X-Git-Tag: 0.9.28~1285^2~847 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b26b766cdf86231bd10c20951bd33675e7d97836;p=pakfire.git libpakfire: archive: Only load support for what we use This reduces the footprint of libpakfire in memory as well as not opening us up to any vulnerabilities in filters and formats of libarchive that we do not use. Signed-off-by: Michael Tremer --- diff --git a/configure.ac b/configure.ac index 32cc047fc..f3816947e 100644 --- a/configure.ac +++ b/configure.ac @@ -172,7 +172,7 @@ SOLV_LIBS="$LIBS" AC_SUBST(SOLV_LIBS) LIBS="$save_LIBS" -PKG_CHECK_MODULES([ARCHIVE], [libarchive]) +PKG_CHECK_MODULES([ARCHIVE], [libarchive >= 3.3.3]) PKG_CHECK_MODULES([PYTHON_DEVEL], [python-${PYTHON_VERSION}]) PKG_CHECK_MODULES([LZMA], [liblzma]) diff --git a/src/libpakfire/archive.c b/src/libpakfire/archive.c index beb4cbe46..154d488ff 100644 --- a/src/libpakfire/archive.c +++ b/src/libpakfire/archive.c @@ -89,8 +89,12 @@ struct payload_archive_data { }; static void configure_archive(struct archive* a) { - archive_read_support_filter_all(a); - archive_read_support_format_all(a); + // All of our packages are tar balls + archive_read_support_format_tar(a); + + // They are compressed using XZ or ZSTD + archive_read_support_filter_xz(a); + archive_read_support_filter_zstd(a); } static int archive_open(PakfireArchive archive, struct archive** a) {