aboutsummaryrefslogtreecommitdiff
path: root/archival/libunarchive/data_extract_all.c
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-10-17 14:03:56 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-10-17 14:03:56 +0000
commitd83676ec47fa359bad9ed949919edc68f84a4ef2 (patch)
treebc813a7833f68625902a96d3625b33c28bac06a6 /archival/libunarchive/data_extract_all.c
parentaa9eb1fc6718aec0a6a67b2dc748c3416056411e (diff)
downloadbusybox-d83676ec47fa359bad9ed949919edc68f84a4ef2.tar.gz
data_extract_all: do not complain if directory exists on mkdir
rpm/cpio: move "20653 blocks" printout from get_header_cpio to cpio_main - rpm doesn't want to have that
Diffstat (limited to 'archival/libunarchive/data_extract_all.c')
-rw-r--r--archival/libunarchive/data_extract_all.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/archival/libunarchive/data_extract_all.c b/archival/libunarchive/data_extract_all.c
index a67587d72..8b1ee2a6e 100644
--- a/archival/libunarchive/data_extract_all.c
+++ b/archival/libunarchive/data_extract_all.c
@@ -77,7 +77,9 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle)
}
case S_IFDIR:
res = mkdir(file_header->name, file_header->mode);
- if ((res == -1) && (errno != EISDIR)
+ if ((res == -1)
+ && (errno != EISDIR) /* btw, Linux doesn't return this */
+ && (errno != EEXIST)
&& !(archive_handle->ah_flags & ARCHIVE_EXTRACT_QUIET)
) {
bb_perror_msg("cannot make dir %s", file_header->name);