From fbe92e37123371d60f8a8be3b1131802a35a9ecf Mon Sep 17 00:00:00 2001 From: Joerg Sonnenberger Date: Sat, 20 Feb 2010 16:23:11 -0500 Subject: [PATCH] Provide a sane default strategy for the various formats. zip and ar don't do hardlinks, so work like old-cpio. shar is like tar. Default to old-cpio as fallback as it is the least problematic of the three options. SVN-Revision: 1926 --- libarchive/archive_entry_link_resolver.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libarchive/archive_entry_link_resolver.c b/libarchive/archive_entry_link_resolver.c index 3b13e19c8..28a71947f 100644 --- a/libarchive/archive_entry_link_resolver.c +++ b/libarchive/archive_entry_link_resolver.c @@ -120,6 +120,10 @@ archive_entry_linkresolver_set_strategy(struct archive_entry_linkresolver *res, int fmtbase = fmt & ARCHIVE_FORMAT_BASE_MASK; switch (fmtbase) { + case ARCHIVE_FORMAT_AR: + case ARCHIVE_FORMAT_ZIP: + res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_OLD_CPIO; + break; case ARCHIVE_FORMAT_CPIO: switch (fmt) { case ARCHIVE_FORMAT_CPIO_SVR4_NOCRC: @@ -134,11 +138,12 @@ archive_entry_linkresolver_set_strategy(struct archive_entry_linkresolver *res, case ARCHIVE_FORMAT_MTREE: res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_MTREE; break; + case ARCHIVE_FORMAT_SHAR: case ARCHIVE_FORMAT_TAR: res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_TAR; break; default: - res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_TAR; + res->strategy = ARCHIVE_ENTRY_LINKIFY_LIKE_OLD_CPIO; break; } } -- 2.47.3