Denys Vlasenko
537389cedd
tar: fix files skipped with --strip_components not resetting selinux context
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-22 13:38:09 +02:00
Denys Vlasenko
f167e4503d
tar: shrink hardlink name handling code
...
function old new delta
data_extract_all 1069 1040 -29
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-22 13:30:34 +02:00
Denys Vlasenko
62ae323df0
tar: implement --version for buildroot
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-22 13:22:26 +02:00
Denys Vlasenko
6c563e370d
tar: add support for --strip-components=N
...
function old new delta
data_extract_all 882 995 +113
tar_longopts 290 309 +19
tar_main 938 942 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 136/0) Total: 136 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-22 01:07:13 +02:00
Aaro Koskinen
2735bc00e3
cpio: implement -R/--owner
...
Implement -R/--owner to force ownership of files.
function old new delta
cpio_main 532 586 +54
get_header_cpio 909 939 +30
print 36 65 +29
cpio_o 804 832 +28
cpio_TRAILER - 11 +11
packed_usage 30667 30662 -5
static.trailer 11 - -11
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 4/1 up/down: 152/-16) Total: 136 bytes
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-16 17:24:46 +02:00
Denys Vlasenko
7b85ec30b5
*: more BUILD_BUG_ON conversions
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-13 17:17:34 +02:00
Denys Vlasenko
7f3a2a2256
join some common strings, -400 bytes
...
function old new delta
print_intel_cstates 499 511 +12
file_insert 355 364 +9
dpkg_main 2944 2940 -4
ifenslave_main 645 640 -5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 21/-9) Total: 12 bytes
text data bss dec hex filename
937564 932 17676 956172 e970c busybox_old
937164 932 17676 955772 e957c busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-08 11:24:44 +02:00
Maninder Singh
97f2f7ca7f
Removes stray empty line from code
...
This patch removes stray empty line from busybox code
reported by script find_stray_empty_lines
Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
Signed-off-by: Akhilesh Kumar <akhilesh.k@samsung.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-07-13 03:25:46 +02:00
Denys Vlasenko
bdb540e04f
tar: do not try to decode GNU extended headers as pax headers
...
function old new delta
get_header_tar 1736 1692 -44
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-05-11 16:55:16 +02:00
Thiago Jung Bauermann
b4059f6309
libarchive: auto-detect .Z files as well
...
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-05-03 18:40:12 +02:00
Aaro Koskinen
bbd53216f8
gzip: add support for compression levels 4-9
...
function old new delta
gzip_main 192 282 +90
static.gzip_level_config - 24 +24
packed_usage 30439 30459 +20
fill_window 216 220 +4
pack_gzip 1789 1729 -60
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/1 up/down: 138/-60) Total: 78 bytes
Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-04-26 14:22:37 +02:00
Denys Vlasenko
8dff01d06a
libbb: introduce and use is_prefixed_with()
...
function old new delta
is_prefixed_with - 18 +18
complete_username 78 77 -1
man_main 737 735 -2
fsck_device 429 427 -2
unpack_ar_archive 80 76 -4
strip_unsafe_prefix 105 101 -4
singlemount 1054 1050 -4
rtc_adjtime_is_utc 90 86 -4
resolve_mount_spec 88 84 -4
parse_one_line 1029 1025 -4
parse_conf 1460 1456 -4
may_wakeup 83 79 -4
loadkmap_main 219 215 -4
get_irqs_from_stat 103 99 -4
get_header_cpio 913 909 -4
findfs_main 79 75 -4
fbsplash_main 1230 1226 -4
load_crontab 776 771 -5
expand_vars_to_list 1151 1146 -5
date_main 881 876 -5
skip_dev_pfx 30 24 -6
make_device 2199 2193 -6
complete_cmd_dir_file 773 767 -6
run_applet_and_exit 715 708 -7
uudecode_main 321 313 -8
pwdx_main 197 189 -8
execute 568 560 -8
i2cdetect_main 1186 1176 -10
procps_scan 1242 1230 -12
procps_read_smaps 1017 1005 -12
process_module 746 734 -12
patch_main 1903 1891 -12
nfsmount 3572 3560 -12
stack_machine 126 112 -14
process_timer_stats 449 435 -14
match_fstype 111 97 -14
do_ipaddr 1344 1330 -14
open_list_and_close 359 343 -16
get_header_tar 1795 1779 -16
prepend_new_eth_table 340 323 -17
fsck_main 1811 1794 -17
find_iface_state 56 38 -18
dnsd_main 1321 1303 -18
base_device 179 158 -21
find_keyword 104 82 -22
handle_incoming_and_exit 2785 2762 -23
parse_and_put_prompt 774 746 -28
modinfo 347 317 -30
find_action 204 171 -33
update_passwd 1470 1436 -34
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/49 up/down: 18/-540) Total: -522 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-03-12 17:48:34 +01:00
Denys Vlasenko
8c06bc6ba1
unzip: prevent attacks via malicious filenames
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-02-10 01:30:43 +01:00
Denys Vlasenko
b62d4d9d57
gzip: trivial code shrink -5 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-02-03 15:25:17 +01:00
Denys Vlasenko
f7f70bf1b3
gzip: speed up and shrink put_16bit()
...
function old new delta
put_16bit 104 98 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-02-02 16:07:07 +01:00
Rich Felker
7f7ade1964
gzip: do not store timestamp in gzip header
...
Storing the original file's modification time in the output file is
harmful (precludes deterministic results) and unlike official gzip,
the busybox version provides no way to suppress this behavior; the -n
option is silently ignored. Rather than trying to make -n work, this
patch just removes the timestamp-storing functionality. It should be
considered deprecated anyway; it's not Y2038-safe and gunzip ignores
it by default.
Per RFC 1952, 0 is the correct value to store to indicate that there
is no timestamp.
Signed-off-by: Rich Felker <dalias@libc.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-02-02 16:01:16 +01:00
Denys Vlasenko
08f9ffc3f7
dpkg: update supported compression methods
...
Based on a patch by Ron Yorston <rmy@tigress.co.uk>
function old new delta
get_header_tar_xz - 60 +60
filter_accept_list_reassign 128 188 +60
unpack_package 585 621 +36
init_archive_deb_control 52 76 +24
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 3/0 up/down: 180/0) Total: 180 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-01-30 15:15:38 +01:00
Denys Vlasenko
11775edbfc
randomconfig fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-22 19:37:05 +01:00
Denys Vlasenko
acb8be7217
tar: fix "tar -cJ" ignoring -J option. closes 7706
...
function old new delta
tar_main 895 938 +43
vfork_compressor 206 191 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 43/-15) Total: 28 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-11 15:34:02 +01:00
Denys Vlasenko
cfcd2399b2
make xmalloc_open_zipped_read_close result NUL terminated
...
Compat with xmalloc_open_read_close
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-07 00:49:55 +01:00
Denys Vlasenko
b4c11c1397
libarchive: add capability to unpack to mem.buffer
...
The performance and number of processes for a "depmod -a" with gzipped
modules was abysmal. This patch adds a code path without fork,
benefiting all users of xmalloc_open_zipped_read_close.
"modinfo radeon.ko.gz", a single-file reader, got 30% faster.
"depmod -a", which used to fork over 800 times, got 20% faster.
Heavily based on a patch by Lauri Kasanen <curaga@operamail.com>
function old new delta
setup_transformer_on_fd - 159 +159
transformer_write - 122 +122
fork_transformer - 112 +112
xmalloc_open_zipped_read_close 63 118 +55
read_bunzip 1866 1896 +30
xtransformer_write - 19 +19
unzip_main 2449 2462 +13
bbunpack 755 766 +11
unpack_lzma_stream 2717 2723 +6
unpack_xz_stream 2393 2397 +4
unpack_Z_stream 1173 1175 +2
inflate_unzip 111 105 -6
check_signature16 70 63 -7
unpack_bz2_stream 359 349 -10
unpack_unxz 12 - -12
unpack_unlzma 12 - -12
unpack_uncompress 12 - -12
unpack_gunzip 12 - -12
unpack_bunzip2 12 - -12
open_transformer 106 92 -14
inflate_unzip_internal 1945 1916 -29
unpack_gz_stream 693 655 -38
open_zipped 89 47 -42
setup_unzip_on_fd 142 53 -89
------------------------------------------------------------------------------
(add/remove: 4/5 grow/shrink: 7/8 up/down: 533/-295) Total: 238 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-07 00:44:00 +01:00
Denys Vlasenko
e7800f351a
Rename transformer_aux_data_t -> transformer_state_t
...
No code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-12-07 00:42:49 +01:00
Denys Vlasenko
184b266917
cpio: reinstate "options:" line in help text
...
Otherwise, help text is confusing: where do operation modes end
and where options start?
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-30 17:19:17 +02:00
Denys Vlasenko
a9dc7c2f59
lzop: add overflow check
...
See CVE-2014-4607
http://www.openwall.com/lists/oss-security/2014/06/26/20
function old new delta
lzo1x_decompress_safe 1010 1031 +21
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-06-30 10:14:34 +02:00
Denys Vlasenko
81071e6872
unlzma: add comments about possible bug from BZ 2689
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-02-28 15:42:10 +01:00
Denys Vlasenko
2108a6f0b5
unlzma: move some variables in "more local" scope
...
No code changes as verified by objdump
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-02-28 15:05:43 +01:00
Denys Vlasenko
640ce3de07
zcat: complain if input is not compressed
...
function old new delta
buffer_fill_and_print 178 191 +13
varvalue 735 743 +8
bbunpack 747 755 +8
open_zipped 85 89 +4
xmalloc_open_zipped_read_close 61 63 +2
get_addr_1 240 242 +2
fbsplash_main 1228 1230 +2
pstree_main 322 321 -1
builtin_type 121 119 -2
do_load 954 926 -28
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 7/3 up/down: 39/-31) Total: 8 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-02-02 02:06:38 +01:00
Denys Vlasenko
b664f740d9
libbb: open_zipped() should not fail on non-compressed files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-01-27 13:02:18 +01:00
Denys Vlasenko
0f592d7fb9
tar: tighten up pax header validity check
...
function old new delta
get_header_tar 1785 1795 +10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-01-10 18:02:38 +01:00
Denys Vlasenko
7c47b560a8
libarchive: open_zipped() does not need to check extensions for e.g. gzip
...
We only need to check for signature-less extensions,
currently only .lzma. The rest can be happily autodetected.
This fixes "zcat FILE_WITHOUT_GZ_EXT" case, among others.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-01-10 14:12:11 +01:00
Denys Vlasenko
9b2a9f0210
fix assorted unused code and wrong format specs found by cppchekc (bug 6716)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-29 16:43:33 +01:00
Daniel Borca
df0d2cd837
dpkg-deb: cosmetic correction to usage text
...
Signed-off-by: Daniel Borca <dborca@yahoo.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-28 12:38:25 +01:00
Denys Vlasenko
0545e3b69a
tar: prevent empty file to be treated as valid tarball
...
function old new delta
tar_main 879 895 +16
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-19 17:17:48 +01:00
Denys Vlasenko
ebfa9b5aa1
tar: fix exitcode check for MMU-spawned unpacking helpers
...
Testcase: tar xvzf EMPTY_FILE
function old new delta
open_transformer 102 106 +4
get_header_tar 1781 1785 +4
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-19 14:44:04 +01:00
Denys Vlasenko
f6beef63c6
archival/*: move "config:" snippets into .c files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-14 11:39:00 +01:00
Denys Vlasenko
ac21687309
archival/*: move "applet:" snippets into .c files, part 2
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-14 11:38:18 +01:00
Denys Vlasenko
36184a487d
archival/*: move "applet:" snippets into .c files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-14 09:54:24 +01:00
Denys Vlasenko
66620fa626
archival/*: move "kbuild:" snippets into .c files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-11-14 09:53:52 +01:00
Denys Vlasenko
5117eff6f9
Fix some compiler warnings emitted by gcc-4.8.0
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-10-16 14:21:20 +02:00
Denys Vlasenko
932e233a49
bunzip2: fix off-by-one check
...
stage3-armv7a_hardfp-20130209.tar.bz2, 149189948 bytes long,
md5sum b29ce23312e14eb15a143377d4a38473, was failing to unpack.
It so happened that this file has a run which exactly fills
the 90k buffer. The check was "size >= bufsize", apparently
it has to be ">".
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-10-06 22:53:14 +02:00
Denys Vlasenko
a613aa1b4c
ar: better comment
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-09-10 16:27:08 +02:00
Peter Korsgaard
2a053a2430
ar: read_num(): fix reading fields using the entire width
...
ar fields are fixed length text strings (padded with spaces). Ensure
bb_strtou doesn't read past the field in case the full width is used.
The fields are only read once, so the simplest/smallest solution to me
seems to be to just pass the length to read_num() and then zero terminate
the string before passing it to bb_strtou. This does mean that the fields
MUST be read in reverse order, so some minor reshuffling was needed.
Bloat-o-meter:
function old new delta
get_header_ar 394 414 +20
read_num 29 36 +7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 27/0) Total: 27 bytes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-09-10 16:22:12 +02:00
SASAKI Suguru
73fbe9dc86
tar: fix tar -T to add entries in the exact order as the input list
...
This fixes tar to order files in tarball correctly in this case:
$ touch 1 2 3; echo -e '1\n2\n3' | tar -T- -c | tar t
1
2
3
Signed-off-by: SASAKI Suguru <suguru@sonik.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-08-15 12:19:29 +02:00
Denys Vlasenko
d0bc708cb5
unpackers: by users' request, print compression percentage if -v and DESKTOP
...
function old new delta
bbunpack 634 731 +97
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-30 05:41:11 +02:00
Denys Vlasenko
26cd90c7fd
unzip: survive lack of CDF on non-streaming zip files
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-21 02:31:08 +02:00
Denys Vlasenko
5e87e8aebb
unzip: increase PEEK_FROM_END from 16k to 64k
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-20 15:20:46 +02:00
Rich Felker
16614e9bab
*: change execl sentinels from NULL to (char*)0
...
Signed-off-by: Rich Felker <dalias@aerifal.cx>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-06-30 13:45:17 +02:00
Denys Vlasenko
e0a6ab698f
Fix build failures caused by not compiling open_transformer.c ( #2 )
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-15 03:23:30 +02:00
Denys Vlasenko
abbc478f1c
Fix build failures caused by not compiling open_transformer.c
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-05-12 02:34:38 +02:00
Mike Frysinger
93b51819cf
archival: note implicit dependencies between lzop & bbunzip
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-03-03 00:48:53 -05:00
Denys Vlasenko
507f6ea6d2
decompress_unlzma: move function, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-03-01 14:48:10 +01:00
Denys Vlasenko
a2d04e0702
decompress_unlzma: 10% speedup in "small" code
...
text data bss dec hex filename
1796 0 0 1796 704 decompress_unlzma.o
1801 0 0 1801 709 decompress_unlzma.o
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-03-01 14:43:07 +01:00
Denys Vlasenko
c09fd27c0a
decompress_unlzma: make "fast" version a bit smaller
...
It is not slower. In fact it seems a tiny bit faster too.
text data bss dec hex filename
2827 0 0 2827 b0b decompress_unlzma.o
2797 0 0 2797 aed decompress_unlzma.o
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-03-01 14:37:58 +01:00
Denys Vlasenko
2fe5fed2df
lzop: fiq -q and OPTION_DECOMPRESS mismatch
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-03-01 08:25:45 +01:00
Mike Frysinger
08e28e806d
bbunzip: fix order of flags vs bit defines
...
Too much code shuffling.
Reported-by: Mandeep Singh Baines <msb@chromium.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-02-28 21:28:21 -05:00
Mike Frysinger
920c1baab7
bbunzip: ignore the -q flag with the decompressors
...
The -q flag is used in shell scripts for suppressing output.
Have our applets swallow the flag for compatibility.
Reported-by: Mandeep Singh Baines <msb@chromium.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-02-28 17:21:50 -05:00
Denys Vlasenko
41655438c6
zcat: fix "zcat FILE" trying to do detection twice
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-28 18:37:04 +01:00
Denys Vlasenko
8e96efa323
zcat: if seamless uncompressors are defined, autodetect file's format
...
function old new delta
bbunpack 526 622 +96
packed_usage 29335 29341 +6
gunzip_main 64 67 +3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-28 18:06:09 +01:00
Denys Vlasenko
f2d8478e56
fix error message on failure to oen /dev/null; fix zcat's help text
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-28 18:05:01 +01:00
Denys Vlasenko
577235dee8
code shrink in check_errors_in_children()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-28 16:38:25 +01:00
Leonid Lisovskiy
f59d563399
xz: fix put_unaligned_{l,b}e32
...
Signed-off-by: Leonid Lisovskiy <lly.dev@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 18:32:58 +01:00
Lasse Collin
380c8a0763
xz: support concatenated .xz streams
...
function old new delta
xz_dec_reset - 77 +77
unpack_xz_stream 2402 2397 -5
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 17:26:40 +01:00
Lasse Collin
433757413f
xz: mention xzminidec.c in README
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:41:36 +01:00
Lasse Collin
c3045edec2
xz: fix incorrect XZ_BUF_ERROR
...
xz_dec_run() could incorrectly return XZ_BUF_ERROR if
all of the following was true:
- The caller knows how many bytes of output to expect
and only provides that much output space.
- When the last output bytes are decoded, the
caller-provided input buffer ends right before
the LZMA2 end of payload marker. So LZMA2 won't
provide more output anymore, but it won't know it
yet and thus won't return XZ_STREAM_END yet.
- A BCJ filter is in use and it hasn't left any
unfiltered bytes in the temp buffer. This can happen
with any BCJ filter, but in practice it's more likely
with filters other than the x86 BCJ.
This fixes <https://bugzilla.redhat.com/show_bug.cgi?id=735408 >
where Squashfs thinks that a valid file system is corrupt.
Thanks to Jindrich Novy for telling me that such a bug report
exists, Phillip Lougher for providing excellent debug info,
and other people on #fedora-ppc.
This also fixes a similar bug in single-call mode where the
uncompressed size of a XZ Block using BCJ + LZMA2 was 0 bytes
and caller provided no output space. Many empty .xz files
don't contain any Blocks and thus don't trigger this bug.
This also tweaks a closely related detail: xz_dec_bcj_run()
could call xz_dec_lzma2_run() to decode into temp buffer when
it was known to be useless. This was harmless although it
wasted a minuscule number of CPU cycles.
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:39:56 +01:00
Lasse Collin
a1ae2b75a7
xz: fix decoding of LZMA2 streams having no uncompressed data.
...
No .xz encoder creates files with empty LZMA2 streams,
but such files would still be valid and decompressors
must accept them.
Note that empty .xz files are a different thing than
empty LZMA2 streams. This bug didn't affect typical .xz
files that had no uncompressed data.
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:38:06 +01:00
Lasse Collin
efb800439f
cz: add C++ support to xz.h
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:37:18 +01:00
Lasse Collin
aada3126a7
xz: remove an empty line from xz_dec_lzma2.c
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:36:17 +01:00
Lasse Collin
b967e42b77
xz: make bcj_x86_test_msbyte() an inline function
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:34:06 +01:00
Lasse Collin
18714d8460
xz: add a comment about using uint32_t as vli_type
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:32:03 +01:00
Lasse Collin
9056fcecbf
xz: avoid "NOTE:" in xz.h
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:28:33 +01:00
Lasse Collin
3a7b2417f9
xz: update README
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:26:03 +01:00
Lasse Collin
04f296b28a
xz: omit explicit \0 from HEADER_MAGIC
...
Signed-off-by: Lasse Collin <lasse.collin@tukaani.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-27 16:23:24 +01:00
Denys Vlasenko
8e6a1ea825
rpm: unmap rpm file before working with next one
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-20 16:01:48 +01:00
Denys Vlasenko
d4d4f3528e
rpm: stop using statics; move main() to the end of the source file
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-20 16:01:10 +01:00
Denys Vlasenko
2aec773688
rpm: use "create+rename" method of replacing existing files
...
Users were reporting getting errors like
"ls: error while loading shared libraries: libc.so.6: ELF load command past end of file"
while rpm was unpacking glibc tarball.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-20 15:58:42 +01:00
Denys Vlasenko
10f5f9b10d
rpm: make -ql display more compatible; improve help text
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-02-20 15:57:39 +01:00
Denys Vlasenko
bf99807657
unzip: add missing fflush; code shrink
...
function old new delta
my_fgets80 - 41 +41
unzip_main 2291 2242 -49
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-01-22 11:16:08 +01:00
Denys Vlasenko
778794d1dd
*: reuse more strings
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-01-22 10:13:52 +01:00
Denys Vlasenko
60cb48ca50
whitespace cleanup. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-01-14 15:57:44 +01:00
Denys Vlasenko
6967578728
whitespace fixes. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-01-14 01:34:48 +01:00
Denys Vlasenko
4d5955e9ec
decompress_uncompress: comment out a bigger chunk of debug code
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-05 11:08:30 +01:00
Denys Vlasenko
a8461173ba
decompress_uncompress: comment out debug printout on corrupted data
...
99% plus of all people who'll get corrupted archive wouldn't bother
debugging it. The rest can uncomment the code.
function old new delta
unpack_Z_stream 1304 1234 -70
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-05 01:06:05 +01:00
Denys Vlasenko
c71547ccfc
decompress_uncompress: move 'code' variable into loop - sole user
...
Apparently, gcc does this optimization itself, since generated code is the same.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-12-05 01:04:54 +01:00
Denys Vlasenko
440a509849
dpkg: fix creation of .list files (were empty since b768aeb
). Closes 5324
...
While at it, fix filename order and free the list of names.
function old new delta
llist_rev - 21 +21
get_header_tar 1733 1741 +8
unpack_package 587 585 -2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 29/-2) Total: 27 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-22 16:27:21 +02:00
Denys Vlasenko
d52c9510fd
trivial small speed optimization
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-22 15:54:05 +02:00
Denys Vlasenko
e3e0d2b812
tweak help text
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-19 12:46:59 +02:00
Denys Vlasenko
c5b01016e6
unzip: make options parsing more robust on getopt w/o gnu extensions
...
Also, code shrank:
function old new delta
static.extn 15 10 -5
packed_usage 29231 29217 -14
unzip_main 2388 2291 -97
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-116) Total: -116 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-15 16:43:26 +02:00
Etienne Le Sueur
cfc212cdff
tar: fix 256-bit encoded number decoding
...
Signed-off-by: Etienne Le Sueur <elesueur@vmware.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-09 08:37:05 +02:00
Natanael Copa
02112d8ae3
unzip: ignore chmod errors
...
This makes unzip to FAT filesystems not exit with error.
This is similar to how the "normal" unzip works.
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-05-28 01:29:15 +02:00
Boris Reisig
dfc2473b9e
tar: support -J, --xz explicit compression option
...
function old new delta
tar_main 868 881 +13
tar_longopts 285 290 +5
packed_usage 29267 29270 +3
Signed-off-by: Boris Reisig <boris@boris.ca>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-05-24 09:01:55 +02:00
Anthony G. Basile
6e9284db78
build system: fix build failure when only gunzip is selected
...
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-05-20 12:56:17 +02:00
Natanael Copa
0446104137
tar: implement --no-recursion
...
function old new delta
tar_longopts 259 274 +15
.rodata 5757 5772 +15
tar_main 1038 1052 +14
writeTarFile 362 353 -9
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 44/-9) Total: 35 bytes
text data bss dec hex filename
81457 1706 8344 91507 16573 busybox_old
81477 1706 8344 91527 16587 busybox_unstripped
Signed-off-by: Natanael Copa <natanael.copa@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-05-18 16:34:30 +02:00
Denys Vlasenko
d133144d41
fix build failure when compressed help is selected, but bz2 compression is not
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-29 14:28:12 +02:00
Denys Vlasenko
df9196d824
Fix another build failure found with randconfig
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-20 18:59:14 +02:00
Denys Vlasenko
8cab66730a
fix build breakage found by randconfig
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-20 14:48:00 +02:00
Denys Vlasenko
d29c946f93
fix trivial bug in unpack_gz_stream (wrong fd used in read)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-06 16:46:25 +01:00
Denys Vlasenko
b5d6ae9a33
Don't compile get_header_tar_FOO function if they are not needed
...
Now get_header_tar_gz, get_header_tar_bz2, get_header_tar_lzma
are only used if dpkg is built.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-06 16:34:23 +01:00
Denys Vlasenko
faac1d3e6e
tar,rpm2cpio: check that child decompressor did not error out
...
function old new delta
check_errors_in_children - 57 +57
tar_main 833 848 +15
get_header_tar 1720 1733 +13
rpm2cpio_main 147 140 -7
handle_SIGCHLD 41 - -41
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 2/1 up/down: 85/-48) Total: 37 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-06 16:33:42 +01:00
Denys Vlasenko
02c3c38420
Move seamless .Z support into unpack_gz_stream
...
unpack_gz_stream 566 643 +77
unpack_gunzip 123 12 -111
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-06 16:32:06 +01:00
Denys Vlasenko
8a6a2f9c9c
update seamless uncompression code
...
This change makes "tar tf hello_world.txz" work without
adding special-casing for ".txz" extension. It also removes
ever-growing magic checking code in rpm2cpio and get_header_tar -
we reuse one which lives in setup_unzip_on_fd.
function old new delta
unpack_gz_stream 7 566 +559
check_signature16 - 70 +70
setup_unzip_on_fd 99 142 +43
handle_SIGCHLD - 41 +41
unpack_bz2_stream 342 376 +34
unzip_main 2352 2385 +33
bbunpack 503 533 +30
open_transformer 74 102 +28
unpack_Z_stream 1278 1304 +26
unpack_gunzip 101 123 +22
init_transformer_aux_data - 18 +18
unpack_xz_stream 2388 2402 +14
open_zipped 131 141 +10
rpm_main 1358 1363 +5
get_header_tar_lzma 52 57 +5
get_header_tar_bz2 52 57 +5
unpack_lzma_stream 2698 2702 +4
hash_find 234 233 -1
get_header_tar 1759 1733 -26
get_header_tar_gz 92 57 -35
unpack_uncompress 51 12 -39
rpm2cpio_main 201 147 -54
unpack_unxz 67 12 -55
unpack_bz2_stream_prime 55 - -55
get_header_tar_Z 86 - -86
unpack_gz_stream_with_info 539 - -539
------------------------------------------------------------------------------
(add/remove: 3/3 grow/shrink: 14/6 up/down: 947/-890) Total: 57 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-06 16:27:48 +01:00