diff options
-rw-r--r-- | archival/cpio.c | 3 | ||||
-rw-r--r-- | archival/libunarchive/data_extract_all.c | 4 | ||||
-rw-r--r-- | archival/libunarchive/get_header_cpio.c | 3 |
3 files changed, 8 insertions, 2 deletions
diff --git a/archival/cpio.c b/archival/cpio.c index 37b6b5cce..d39640d24 100644 --- a/archival/cpio.c +++ b/archival/cpio.c | |||
@@ -344,5 +344,8 @@ int cpio_main(int argc UNUSED_PARAM, char **argv) | |||
344 | while (get_header_cpio(archive_handle) == EXIT_SUCCESS) | 344 | while (get_header_cpio(archive_handle) == EXIT_SUCCESS) |
345 | continue; | 345 | continue; |
346 | 346 | ||
347 | /* see get_header_cpio */ | ||
348 | printf("%lu blocks\n", (unsigned long)(ptrdiff_t)(archive_handle->ah_priv[2])); | ||
349 | |||
347 | return EXIT_SUCCESS; | 350 | return EXIT_SUCCESS; |
348 | } | 351 | } |
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) | |||
77 | } | 77 | } |
78 | case S_IFDIR: | 78 | case S_IFDIR: |
79 | res = mkdir(file_header->name, file_header->mode); | 79 | res = mkdir(file_header->name, file_header->mode); |
80 | if ((res == -1) && (errno != EISDIR) | 80 | if ((res == -1) |
81 | && (errno != EISDIR) /* btw, Linux doesn't return this */ | ||
82 | && (errno != EEXIST) | ||
81 | && !(archive_handle->ah_flags & ARCHIVE_EXTRACT_QUIET) | 83 | && !(archive_handle->ah_flags & ARCHIVE_EXTRACT_QUIET) |
82 | ) { | 84 | ) { |
83 | bb_perror_msg("cannot make dir %s", file_header->name); | 85 | bb_perror_msg("cannot make dir %s", file_header->name); |
diff --git a/archival/libunarchive/get_header_cpio.c b/archival/libunarchive/get_header_cpio.c index 93f6c61aa..302f12233 100644 --- a/archival/libunarchive/get_header_cpio.c +++ b/archival/libunarchive/get_header_cpio.c | |||
@@ -27,6 +27,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle) | |||
27 | 27 | ||
28 | #define hardlinks_to_create (*(hardlinks_t **)(&archive_handle->ah_priv[0])) | 28 | #define hardlinks_to_create (*(hardlinks_t **)(&archive_handle->ah_priv[0])) |
29 | #define created_hardlinks (*(hardlinks_t **)(&archive_handle->ah_priv[1])) | 29 | #define created_hardlinks (*(hardlinks_t **)(&archive_handle->ah_priv[1])) |
30 | #define block_count (archive_handle->ah_priv[2]) | ||
30 | // if (!archive_handle->ah_priv_inited) { | 31 | // if (!archive_handle->ah_priv_inited) { |
31 | // archive_handle->ah_priv_inited = 1; | 32 | // archive_handle->ah_priv_inited = 1; |
32 | // hardlinks_to_create = NULL; | 33 | // hardlinks_to_create = NULL; |
@@ -76,7 +77,7 @@ char FAST_FUNC get_header_cpio(archive_handle_t *archive_handle) | |||
76 | 77 | ||
77 | if (strcmp(file_header->name, "TRAILER!!!") == 0) { | 78 | if (strcmp(file_header->name, "TRAILER!!!") == 0) { |
78 | /* Always round up. ">> 9" divides by 512 */ | 79 | /* Always round up. ">> 9" divides by 512 */ |
79 | printf("%"OFF_FMT"u blocks\n", (archive_handle->offset + 511) >> 9); | 80 | block_count = (void*)(ptrdiff_t) ((archive_handle->offset + 511) >> 9); |
80 | goto create_hardlinks; | 81 | goto create_hardlinks; |
81 | } | 82 | } |
82 | 83 | ||