--- busybox-1.10.0/archival/libunarchive/data_extract_all.c +++ busybox-1.10.0/archival/libunarchive/data_extract_all.c @@ -38,7 +38,8 @@ } } else if (statbuf.st_mtime <= file_header->mtime) { - if (!(archive_handle->flags & ARCHIVE_EXTRACT_QUIET)) { + if (!(archive_handle->flags & ARCHIVE_EXTRACT_QUIET) && + (file_header->mode & S_IFMT) != S_IFDIR) { bb_error_msg("%s not created: newer or " "same age file exists", file_header->name); } @@ -77,7 +78,7 @@ } case S_IFDIR: res = mkdir(file_header->name, file_header->mode); - if ((res == -1) && (errno != EISDIR) + if ((res == -1) && (errno != EISDIR) && (errno != EEXIST) && !(archive_handle->flags & ARCHIVE_EXTRACT_QUIET) ) { bb_perror_msg("cannot make dir %s", file_header->name);