diff options
author | Ron Yorston <rmy@pobox.com> | 2021-01-14 13:28:49 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2021-01-14 13:28:49 +0000 |
commit | 89963b524d211e1aec12b72b3725be05ee95c8cf (patch) | |
tree | 48590aef62b7ee7686b7898256f29def8d9c50b9 /archival/libarchive | |
parent | 9aa5a829070392c2ac6494d0c4e674c0c2bc7dab (diff) | |
parent | 2b7c1aa92c68524559a2067609d09309d5c09adc (diff) | |
download | busybox-w32-89963b524d211e1aec12b72b3725be05ee95c8cf.tar.gz busybox-w32-89963b524d211e1aec12b72b3725be05ee95c8cf.tar.bz2 busybox-w32-89963b524d211e1aec12b72b3725be05ee95c8cf.zip |
Merge branch 'busybox' into merge
Diffstat (limited to 'archival/libarchive')
-rw-r--r-- | archival/libarchive/bz/blocksort.c | 2 | ||||
-rw-r--r-- | archival/libarchive/data_extract_all.c | 4 | ||||
-rw-r--r-- | archival/libarchive/data_extract_to_command.c | 2 | ||||
-rw-r--r-- | archival/libarchive/decompress_gunzip.c | 4 | ||||
-rw-r--r-- | archival/libarchive/get_header_ar.c | 2 | ||||
-rw-r--r-- | archival/libarchive/unpack_ar_archive.c | 2 |
6 files changed, 10 insertions, 6 deletions
diff --git a/archival/libarchive/bz/blocksort.c b/archival/libarchive/bz/blocksort.c index 92d6d8251..062fd0f54 100644 --- a/archival/libarchive/bz/blocksort.c +++ b/archival/libarchive/bz/blocksort.c | |||
@@ -459,7 +459,7 @@ int mainGtU(EState* state, | |||
459 | * usually small, typically <= 20. | 459 | * usually small, typically <= 20. |
460 | */ | 460 | */ |
461 | static | 461 | static |
462 | const uint32_t incs[14] = { | 462 | const uint32_t incs[14] ALIGN4 = { |
463 | 1, 4, 13, 40, 121, 364, 1093, 3280, | 463 | 1, 4, 13, 40, 121, 364, 1093, 3280, |
464 | 9841, 29524, 88573, 265720, | 464 | 9841, 29524, 88573, 265720, |
465 | 797161, 2391484 | 465 | 797161, 2391484 |
diff --git a/archival/libarchive/data_extract_all.c b/archival/libarchive/data_extract_all.c index 3142405a3..049c2c156 100644 --- a/archival/libarchive/data_extract_all.c +++ b/archival/libarchive/data_extract_all.c | |||
@@ -159,6 +159,10 @@ void FAST_FUNC data_extract_all(archive_handle_t *archive_handle) | |||
159 | break; | 159 | break; |
160 | } | 160 | } |
161 | case S_IFDIR: | 161 | case S_IFDIR: |
162 | //TODO: this causes problems if tarball contains a r-xr-xr-x directory: | ||
163 | // we create this directory, and then fail to create files inside it | ||
164 | // (if tar xf isn't run as root). | ||
165 | // GNU tar works around this by chmod-ing directories *after* all files are extracted. | ||
162 | res = mkdir(dst_name, file_header->mode); | 166 | res = mkdir(dst_name, file_header->mode); |
163 | if ((res != 0) | 167 | if ((res != 0) |
164 | && (errno != EISDIR) /* btw, Linux doesn't return this */ | 168 | && (errno != EISDIR) /* btw, Linux doesn't return this */ |
diff --git a/archival/libarchive/data_extract_to_command.c b/archival/libarchive/data_extract_to_command.c index 0fcabb4a9..f8b2ff8d2 100644 --- a/archival/libarchive/data_extract_to_command.c +++ b/archival/libarchive/data_extract_to_command.c | |||
@@ -20,7 +20,7 @@ enum { | |||
20 | TAR_MAX, | 20 | TAR_MAX, |
21 | }; | 21 | }; |
22 | 22 | ||
23 | static const char *const tar_var[] = { | 23 | static const char *const tar_var[] ALIGN_PTR = { |
24 | // "FILETYPE", | 24 | // "FILETYPE", |
25 | "MODE", | 25 | "MODE", |
26 | "FILENAME", | 26 | "FILENAME", |
diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c index c0332d414..b2a3eb1c2 100644 --- a/archival/libarchive/decompress_gunzip.c +++ b/archival/libarchive/decompress_gunzip.c | |||
@@ -194,14 +194,14 @@ struct cp_ext { | |||
194 | }; | 194 | }; |
195 | /* Copy lengths and extra bits for literal codes 257..285 */ | 195 | /* Copy lengths and extra bits for literal codes 257..285 */ |
196 | /* note: see note #13 above about the 258 in this list. */ | 196 | /* note: see note #13 above about the 258 in this list. */ |
197 | static const struct cp_ext lit = { | 197 | static const struct cp_ext lit ALIGN2 = { |
198 | /*257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 */ | 198 | /*257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 */ |
199 | /*0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 */ | 199 | /*0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 */ |
200 | { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 }, | 200 | { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 }, |
201 | { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 } /* 99 == invalid */ | 201 | { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 } /* 99 == invalid */ |
202 | }; | 202 | }; |
203 | /* Copy offsets and extra bits for distance codes 0..29 */ | 203 | /* Copy offsets and extra bits for distance codes 0..29 */ |
204 | static const struct cp_ext dist = { | 204 | static const struct cp_ext dist ALIGN2 = { |
205 | /*0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 */ | 205 | /*0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 */ |
206 | { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 }, | 206 | { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 }, |
207 | { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 } | 207 | { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 } |
diff --git a/archival/libarchive/get_header_ar.c b/archival/libarchive/get_header_ar.c index b6ecd596c..3a19d6ff7 100644 --- a/archival/libarchive/get_header_ar.c +++ b/archival/libarchive/get_header_ar.c | |||
@@ -6,7 +6,7 @@ | |||
6 | */ | 6 | */ |
7 | #include "libbb.h" | 7 | #include "libbb.h" |
8 | #include "bb_archive.h" | 8 | #include "bb_archive.h" |
9 | #include "ar.h" | 9 | #include "ar_.h" |
10 | 10 | ||
11 | /* WARNING: Clobbers str[len], so fields must be read in reverse order! */ | 11 | /* WARNING: Clobbers str[len], so fields must be read in reverse order! */ |
12 | static unsigned read_num(char *str, int base, int len) | 12 | static unsigned read_num(char *str, int base, int len) |
diff --git a/archival/libarchive/unpack_ar_archive.c b/archival/libarchive/unpack_ar_archive.c index 584c18ce8..125d424c9 100644 --- a/archival/libarchive/unpack_ar_archive.c +++ b/archival/libarchive/unpack_ar_archive.c | |||
@@ -4,7 +4,7 @@ | |||
4 | */ | 4 | */ |
5 | #include "libbb.h" | 5 | #include "libbb.h" |
6 | #include "bb_archive.h" | 6 | #include "bb_archive.h" |
7 | #include "ar.h" | 7 | #include "ar_.h" |
8 | 8 | ||
9 | void FAST_FUNC unpack_ar_archive(archive_handle_t *ar_archive) | 9 | void FAST_FUNC unpack_ar_archive(archive_handle_t *ar_archive) |
10 | { | 10 | { |