aboutsummaryrefslogtreecommitdiff
path: root/archival
AgeCommit message (Collapse)Author
2018-11-02libarchive: add a function to unpack embedded dataRon Yorston
Similar code to unpack embedded data is used to decompress usage messages, embedded scripts and the config file (in the non-default bbconfig applet). Moving this code to a common function reduces the size of the default build and hides more of the internals of libarchive. function old new delta unpack_bz2_data - 135 +135 bb_show_usage 137 157 +20 get_script_content 32 47 +15 unpack_scripts 119 - -119 unpack_usage_messages 124 - -124 ------------------------------------------------------------------------------ (add/remove: 1/2 grow/shrink: 2/0 up/down: 170/-243) Total: -73 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-11-01ash: allow shell scripts to be embedded in the binaryDenys Vlasenko
To assist in the deployment of shell scripts it may be convenient to embed them in the BusyBox binary. 'Embed scripts in the binary' takes any files in the directory 'embed', concatenates them with null separators, compresses them and embeds them in the binary. When scripts are embedded in the binary, scripts can be run as 'busybox SCRIPT [ARGS]' or by usual (sym)link mechanism. embed/nologin is provided as an example. function old new delta packed_scripts - 123 +123 unpack_scripts - 87 +87 ash_main 1103 1171 +68 run_applet_and_exit 78 128 +50 get_script_content - 32 +32 script_names - 10 +10 expmeta 663 659 -4 ------------------------------------------------------------------------------ (add/remove: 4/0 grow/shrink: 2/1 up/down: 370/-4) Total: 366 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-09-30unzip: use printable_string() for printing filenamesDenys Vlasenko
function old new delta unzip_main 2726 2792 +66 printable_string2 - 57 +57 identify 4329 4336 +7 expmeta 659 663 +4 add_interface 99 103 +4 beep_main 286 289 +3 changepath 192 194 +2 builtin_type 115 117 +2 devmem_main 469 470 +1 input_tab 1076 1074 -2 create_J 1821 1819 -2 poplocalvars 314 311 -3 doCommands 2222 2214 -8 do_load 918 902 -16 printable_string 57 9 -48 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 8/6 up/down: 146/-79) Total: 67 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-08-04tar: fix a thinko in prev commit - we need to copy to _unused_ fdDenys Vlasenko
function old new delta vfork_compressor 257 246 -11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-08-04tar: handle the case when opened created tarball happens to have fd#0Denys Vlasenko
Reproducer: exec 0>&- exec 1>&- tar czf z.tar.gz FILE function old new delta vfork_compressor 229 257 +28 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-08-04tar: make source code a bit more terse, no logic changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-07-24gzip: unbreak FEATURE_GZIP_LEVELS, closes 11171Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-07-06cpio: if longopts are enabled, accept --null (synonym for -0)Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-07-06tweak help textsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-06-06restore documentation on the build config languageKartik Agaram
Kconfig-language.txt was deleted in commit 4fa499a17b52b back in 2006. Move to docs/ as suggested by Xabier Oneca: http://lists.busybox.net/pipermail/busybox/2014-May/080914.html Also update references to it everywhere. Signed-off-by: Kartik Agaram <akkartik@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-05-25unlzma: close another SEGV possibilityDenys Vlasenko
function old new delta unpack_lzma_stream 2669 2686 +17 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-05-22tar: fix interaction of delayed symlink and hardlink creationHarald van Dijk
function old new delta create_or_remember_link - 106 +106 create_links_from_list - 93 +93 find_applet_by_name 124 128 +4 unzip_main 2724 2726 +2 data_extract_all 891 873 -18 create_symlinks_from_list 64 - -64 create_or_remember_symlink 94 - -94 ------------------------------------------------------------------------------ (add/remove: 2/2 grow/shrink: 2/1 up/down: 205/-176) Total: 29 bytes Signed-off-by: Harald van Dijk <harald@gigawatt.nl> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-24unlzma: do emit the error message on bad input, when we exit with 1Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-19unlzma: fix another SEGV caseDenys Vlasenko
function old new delta unpack_lzma_stream 1705 1717 +12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-15ar: stop using static dataDenys Vlasenko
function old new delta static.ar_long_names 4 - -4 static.ar_long_name_size 4 - -4 get_header_ar 546 532 -14 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 0/1 up/down: 0/-22) Total: -22 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-13dpkg: fix symlink creation, closes 10941Denys Vlasenko
function old new delta get_header_ar 434 442 +8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08unlzma: fix segfault on bad archiveDenys Vlasenko
function old new delta unpack_lzma_stream 2647 2653 +6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08bzip2: fix two crashes on corrupted archivesDenys Vlasenko
As it turns out, longjmp'ing into freed stack is not healthy... function old new delta unpack_usage_messages - 97 +97 unpack_bz2_stream 369 409 +40 get_next_block 1667 1677 +10 get_bits 156 155 -1 start_bunzip 212 183 -29 bb_show_usage 181 120 -61 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/3 up/down: 147/-91) Total: 56 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08lzop: remove method checks which are always true/falseDenys Vlasenko
function old new delta do_lzo_compress 232 224 -8 lzo_compress 531 488 -43 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-51) Total: -51 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08lzop: buffer several 32-bit writes when we start a new compressed blockDenys Vlasenko
function old new delta lzo_compress 483 531 +48 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08lzop: reuse stringsDenys Vlasenko
function old new delta lzo_compress 470 483 +13 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0) Total: 13 bytes text data bss dec hex filename 940011 477 7284 947772 e763c busybox_old 939976 477 7284 947737 e7619 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08lzop: checksum reads do not need to be checksummedDenys Vlasenko
function old new delta do_lzo_decompress 404 427 +23 f_read32 22 - -22 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08lzop: don't support ancient versions < 0.94 (15 Oct 1997)Denys Vlasenko
0.94 came only 2 months after initial 0.90: 0.90 (10 Aug 1997): First public release of lzop ... 0.94 (15 Oct 1997): Header format change function old new delta do_lzo_decompress 411 404 -7 f_read8 24 - -24 f_read16 31 - -31 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 0/1 up/down: 0/-62) Total: -62 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08lzop: code shrink by using header_t matching on-disk layoutDenys Vlasenko
function old new delta add_bytes_to_chksum 37 47 +10 lzo_decompress 524 532 +8 init_chksum 14 21 +7 chksum_getresult 13 17 +4 f_read 33 28 -5 f_write8 20 - -20 f_write32 22 - -22 f_write16 25 - -25 f_write 36 - -36 do_lzo_compress 328 232 -96 do_lzo_decompress 526 411 -115 ------------------------------------------------------------------------------ (add/remove: 0/4 grow/shrink: 4/3 up/down: 29/-319) Total: -290 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07tar: trim help textDenys Vlasenko
Usage: tar c|x|t [-ZzJjahmvokO] [-f TARFILE] [-C DIR] [-T FILE] [-X FILE] [--exclude PATTERN]... [FILE]... Create, extract, or list files from a tar file Operation: <============== DELETED c Create x Extract t List -f FILE Name of TARFILE ('-' for stdin/out) -C DIR Change to DIR before operation -v Verbose -O Extract to stdout -m Don't restore mtime -o Don't restore user:group -k Don't replace existing files -Z (De)compress using compress -z (De)compress using gzip -J (De)compress using xz -j (De)compress using bzip2 -a (De)compress using lzma -h Follow symlinks -T FILE File with names to include -X FILE File with glob patterns to exclude --exclude PATTERN Glob pattern to exclude Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-01libbb: new function bb_die_memory_exhaustedDenys Vlasenko
function old new delta bb_die_memory_exhausted - 10 +10 xstrdup 28 23 -5 xsetenv 27 22 -5 xrealloc 32 27 -5 xputenv 22 17 -5 xmalloc 30 25 -5 xfdopen_helper 40 35 -5 xasprintf 44 39 -5 wget_main 2387 2382 -5 open_socket 54 49 -5 glob_brace 419 414 -5 bb_get_chunk_from_file 146 141 -5 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/11 up/down: 10/-55) Total: -45 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-03-30cpio: extract "unsafe" symlinks the same way tar/unzip doesNatanael Copa
function old new delta cpio_main 588 596 +8 Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-03-16tar: add -o and -k to short --help tooDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-03-16tar: add -k and -o to --helpDenys Vlasenko
-o Don't restore user:group -k Don't replace existing files Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-20tar,unzip: postpone creation of symlinks with "suspicious" targetsDenys Vlasenko
This mostly reverts commit bc9bbeb2b81001e8731cd2ae501c8fccc8d87cc7 "libarchive: do not extract unsafe symlinks unless $EXTRACT_UNSAFE_SYMLINKS=1" Users report that it is somewhat too restrictive. See https://bugs.busybox.net/show_bug.cgi?id=8411 In particular, this interferes with unpacking of busybox-based filesystems with links like "sbin/applet" -> "../bin/busybox". The change is made smaller by deleting ARCHIVE_EXTRACT_QUIET flag - it is unused since 2010, and removing conditionals on it allows commonalizing some error message codes. function old new delta create_or_remember_symlink - 94 +94 create_symlinks_from_list - 64 +64 tar_main 1002 1006 +4 unzip_main 2732 2724 -8 data_extract_all 984 891 -93 unsafe_symlink_target 147 - -147 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 1/2 up/down: 162/-248) Total: -86 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-07bzip2: expose tuning knob for faster/smaller codeDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-06unzip: do not set directory mode to 0777Denys Vlasenko
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882177 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-06ar: hopefully fix out-of-bounds read in get_header_ar()Denys Vlasenko
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=882175 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-05bzip2: work around bad compiler optimizationDenys Vlasenko
gc-6.1.1 x86_64: function old new delta generateMTFValues 380 367 -13 gcc-4.3.1 386: function old new delta inner_loop - 41 +41 generateMTFValues 357 294 -63 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/1 up/down: 41/-63) Total: -22 bytes gcc-6.3.0 386: function old new delta inner_loop - 36 +36 generateMTFValues 363 250 -113 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/1 up/down: 36/-113) Total: -77 bytes The last case, gcc-6.3.0, runs almost 3 times faster after this change. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-04gunzip: fix from gzip-1.3.12 for gzip file with all zero length codesDenys Vlasenko
Corresponding changelog from gzip-1.3.12 reads: """ 2006-12-20 Paul Eggert <eggert@cs.ucla.edu> * inflate.c (huft_build): Fix regression that caused gzip to refuse to uncompress null input (all zero length codes). Problem reported by Yiorgos Adamopoulos. This regression was caused by the security patch installed 2006-11-20, which in turn came from Debian, which in turn apparently came from Thomas Biege of SuSe. """ function old new delta huft_build 1176 1216 +40 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: move runningOrder[] back to stack - 256 bytes is not muchDenys Vlasenko
function old new delta mainSort 1119 1108 -11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: move ->origPtr out of struct EState, make a few members smallerDenys Vlasenko
function old new delta BZ2_compressBlock 223 228 +5 BZ2_blockSort 85 88 +3 generateMTFValues 356 357 +1 handle_compress 355 349 -6 compressStream 538 531 -7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/2 up/down: 9/-13) Total: -4 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: pass sorting params through EState* pointerDenys Vlasenko
function old new delta mainGtU 499 515 +16 sendMTFValues 2085 2094 +9 mainSort 1116 1119 +3 generateMTFValues 357 356 -1 fallbackSort 1719 1705 -14 mainQSort3 1163 1141 -22 BZ2_blockSort 118 85 -33 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/4 up/down: 28/-70) Total: -42 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03gzip2: small simplification in mainSimpleSort()Denys Vlasenko
function old new delta mainQSort3 1165 1163 -2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: a few more locals converted to generic typesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: eliminate one parameter to mainQSort3()Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: small simplification in mainSort()Denys Vlasenko
function old new delta mainSort 1127 1118 -9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: convert some locals to unsigned'sDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: runningOrder[] values are always 0..255, make it uint8Denys Vlasenko
function old new delta mainSort 1171 1124 -47 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: remove redundant clearing of an alredy unset bitDenys Vlasenko
function old new delta mainSort 1178 1171 -7 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: eliminate write-only local numQSortedDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: make locals in mainSort() saner, convert one of them from uint16 to ↵Denys Vlasenko
unsigned function old new delta mainSort 1192 1178 -14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: remove redundant loop termination check in mainSort()Denys Vlasenko
function old new delta mainSort 1202 1192 -10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: reduce indentation, no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-02-03bzip2: reuse zPend processing codeDenys Vlasenko
function old new delta generateMTFValues 378 357 -21 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>