summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--stream/stream_libarchive.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/stream/stream_libarchive.c b/stream/stream_libarchive.c
index 307450c81b..116488d551 100644
--- a/stream/stream_libarchive.c
+++ b/stream/stream_libarchive.c
@@ -81,14 +81,16 @@ struct mp_archive *mp_archive_new(struct mp_log *log, struct stream *src,
goto err;
archive_read_support_format_7zip(mpa->arch);
- archive_read_support_format_gnutar(mpa->arch);
- archive_read_support_format_tar(mpa->arch);
archive_read_support_format_iso9660(mpa->arch);
archive_read_support_format_rar(mpa->arch);
archive_read_support_format_zip(mpa->arch);
archive_read_support_filter_bzip2(mpa->arch);
archive_read_support_filter_gzip(mpa->arch);
archive_read_support_filter_xz(mpa->arch);
+ if (flags & MP_ARCHIVE_FLAG_UNSAFE) {
+ archive_read_support_format_gnutar(mpa->arch);
+ archive_read_support_format_tar(mpa->arch);
+ }
archive_read_set_callback_data(mpa->arch, mpa);
archive_read_set_read_callback(mpa->arch, read_cb);