aboutsummaryrefslogtreecommitdiff
path: root/archival/libarchive/filter_accept_list_reassign.c
diff options
context:
space:
mode:
Diffstat (limited to 'archival/libarchive/filter_accept_list_reassign.c')
-rw-r--r--archival/libarchive/filter_accept_list_reassign.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/archival/libarchive/filter_accept_list_reassign.c b/archival/libarchive/filter_accept_list_reassign.c
index 3d19abe44..b9acfbc05 100644
--- a/archival/libarchive/filter_accept_list_reassign.c
+++ b/archival/libarchive/filter_accept_list_reassign.c
@@ -28,6 +28,10 @@ char FAST_FUNC filter_accept_list_reassign(archive_handle_t *archive_handle)
name_ptr++;
/* Modify the subarchive handler based on the extension */
+ if (strcmp(name_ptr, "tar") == 0) {
+ archive_handle->dpkg__action_data_subarchive = get_header_tar;
+ return EXIT_SUCCESS;
+ }
if (ENABLE_FEATURE_SEAMLESS_GZ
&& strcmp(name_ptr, "gz") == 0
) {
@@ -46,6 +50,12 @@ char FAST_FUNC filter_accept_list_reassign(archive_handle_t *archive_handle)
archive_handle->dpkg__action_data_subarchive = get_header_tar_lzma;
return EXIT_SUCCESS;
}
+ if (ENABLE_FEATURE_SEAMLESS_XZ
+ && strcmp(name_ptr, "xz") == 0
+ ) {
+ archive_handle->dpkg__action_data_subarchive = get_header_tar_xz;
+ return EXIT_SUCCESS;
+ }
}
return EXIT_FAILURE;
}