aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-14ash: expand: Fix buffer overflow in expandmetaDenys Vlasenko
Upstream commit: Date: Sun, 25 Mar 2018 16:38:00 +0800 expand: Fix buffer overflow in expandmeta The native version of expandmeta allocates a buffer that may be overrun for two reasons. First of all the size is 1 byte too small but this is normally hidden because the minimum size is rounded up to 2048 bytes. Secondly, if the directory level is deep enough, any buffer can be overrun. This patch fixes both problems by calling realloc when necessary. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> function old new delta expmeta 517 635 +118 expandarg 990 996 +6 mklocal 288 290 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 126/0) Total: 126 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-14nslookup: add openwrt / lede versionDenys Vlasenko
Needs work on size reduction function old new delta nslookup_main 114 2363 +2249 parse_reply - 1022 +1022 add_ns - 663 +663 ns_parserr - 486 +486 ns_initparse - 184 +184 ns_skiprr - 117 +117 add_query - 95 +95 qtypes - 80 +80 rcodes - 68 +68 dn_skipname - 58 +58 ns_name_uncompress - 56 +56 ns_get16 - 13 +13 v4_mapped - 12 +12 ns_get32 - 9 +9 res_init 3 - -3 __res_state 6 - -6 xmalloc_sockaddr2hostonly_noport 10 - -10 gai_strerror 47 - -47 set_default_dns 95 - -95 print_host 199 - -199 static.res 512 - -512 ------------------------------------------------------------------------------ (add/remove: 15/10 grow/shrink: 1/0 up/down: 5112/-872) Total: 4240 bytes text data bss dec hex filename 921944 555 6252 928751 e2bef busybox_old 927375 555 5740 933670 e3f26 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-14build system: fix parallel building issueMichael Olbrich
The files generated by the include/config/MARKER target are in the dependency list for applets/applet_tables. If applets/applet_tables is created first during applets_dir then it will be created again later as part of $(busybox-dirs). As a result include/applet_tables.h is created again. This time while other build commands may need it. Let applets_dir depend on include/config/MARKER to avoid this particular race condition and create the header files atomically to ensure that the compiler never sees incomplete files. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-14tart_stop_daemon: another fix to disabled OLDER_VERSION_OF_X codeDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-14start_stop_daemon: fix normally disabled OLDER_VERSION_OF_X codeDenys Vlasenko
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-13udhcp: support string user options, closes 10946Denys Vlasenko
function old new delta udhcp_str2optset 536 628 +92 packed_usage 32757 32760 +3 udhcpc_main 2708 2692 -16 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/1 up/down: 95/-16) Total: 79 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11shell: add 6856 $IFS tests to testsuitesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11hush: fix recent breakage from parse_stream() changesDenys Vlasenko
function old new delta parse_stream 3808 3821 +13 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11hush: fix IFS handling in readDenys Vlasenko
$ echo "X:Y:" | (IFS=": " read x y; echo "|$x|$y|") |X|Y| $ echo "X:Y : " | (IFS=": " read x y; echo "|$x|$y|") |X|Y| function old new delta shell_builtin_read 1320 1426 +106 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11hush: IFS fixesDenys Vlasenko
$ IFS=": "; x=" "; set x $x; for v; do echo "|$v|"; done |x| $ IFS=": "; x=":"; set x $x; for v; do echo "|$v|"; done |x| || function old new delta run_pipe 1789 1870 +81 expand_on_ifs 310 361 +51 pseudo_exec_argv 588 591 +3 builtin_local 50 53 +3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 138/0) Total: 138 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11hush: fix "$v" expansion in case patterns when v='[a]'Denys Vlasenko
function old new delta run_list 1053 1063 +10 setup_redirects 311 320 +9 encode_then_expand_string 135 142 +7 run_pipe 1784 1789 +5 expand_assignments 81 86 +5 expand_string_to_string 124 125 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 6/0 up/down: 37/0) Total: 37 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11ash: parser: Allow newlines within parameter substitutionDenys Vlasenko
Upstream commit: Date: Thu, 22 Mar 2018 21:41:24 +0800 parser: Allow newlines within parameter substitution On Fri, Mar 16, 2018 at 11:27:22AM +0800, Herbert Xu wrote: > On Thu, Mar 15, 2018 at 10:49:15PM +0100, Harald van Dijk wrote: > > > > Okay, it can be trivially modified to something that does work in other > > shells (even if it were actually executed), but gets rejected at parse time > > by dash: > > > > if false; then > > : ${$+ > > } > > fi > > That's just a bug in dash's parser with ${} in general, because > it bombs out without the if clause too: > > : ${$+ > } This patch fixes the parsing of newlines with parameter substitution. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11hush: optimize parse_stream()Denys Vlasenko
Since we check for '\' anyway when we determine whether we can look ahead, we can just check for *and handle* it there. function old new delta parse_stream 2751 2740 -11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-11hush: do not drop backslash from eval 'echo ok\'Denys Vlasenko
newer bash does not drop it, most other shells too function old new delta unbackslash 39 57 +18 parse_stream 2753 2751 -2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 18/-2) Total: 16 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10shell: add comments about [[, no code changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10hush: fix handling of \<eof> in double-quoted stringsDenys Vlasenko
function old new delta encode_string 268 250 -18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10hush: fix eval 'echo ok\'Denys Vlasenko
function old new delta parse_stream 2762 2753 -9 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10hush: simplify \<newline> code, part 3Denys Vlasenko
function old new delta parse_stream 2780 2762 -18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10hush: simplify \<newline> code, part 2Denys Vlasenko
function old new delta parse_stream 2787 2780 -7 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10hush: simplify \<newline> code, part 1Denys Vlasenko
function old new delta parse_stream 2919 2787 -132 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10hush: put "current word" structure into parsing contextDenys Vlasenko
function old new delta done_word 790 767 -23 parse_stream 3018 2919 -99 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-122) Total: -122 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10ash: if "[[" bashism is not supported, do not handle it anywhereDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-10ash: trivial code shrinkDenys Vlasenko
function old new delta parse_command 1677 1674 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-09testsuite: allow tests to work in paths containing spacesRon Yorston
Tweak some tests so they work when the path to the test directory or $HOME contains spaces. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-09hush: fix var_leaks.tests and var_preserved.tests on NOMMUDenys Vlasenko
function old new delta remove_nested_vars - 77 +77 run_pipe 1756 1786 +30 pseudo_exec_argv 376 379 +3 leave_var_nest_level 98 32 -66 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/1 up/down: 110/-66) Total: 44 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-09hush: fix func_return2.tests on NOMMUDenys Vlasenko
function old new delta hush_main 1714 1718 +4 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-08wget: check chunk length for overflowing off_tDenys Vlasenko
function old new delta retrieve_file_data 428 465 +37 wget_main 2386 2389 +3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 40/0) Total: 40 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-08libbb.h: always include sys/resource.hDenys Vlasenko
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-07hush: fix prompt in multi-line $(())Denys Vlasenko
Now shows PS2 in this case: /path/to/dir $ a=b; echo $(( > _ Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07libbb: switch bb_ask_noecho() to "mallocing" string return APIDenys Vlasenko
function old new delta bb_ask_noecho 313 330 +17 get_cred_or_die 125 115 -10 passwd_main 995 958 -37 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 17/-47) Total: -30 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07xargs: use bb_ask_y_confirmation_FILE() instead of homegrown copyDenys Vlasenko
function old new delta bb_ask_y_confirmation_FILE - 83 +83 inetd_main 2033 2043 +10 udhcp_send_kernel_packet 295 301 +6 rmescapes 306 310 +4 send_tree 353 355 +2 i2cdetect_main 674 672 -2 confirm_or_abort 43 38 -5 get_terminal_width_height 242 234 -8 bb_ask_y_confirmation 76 10 -66 xargs_main 823 755 -68 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 4/5 up/down: 105/-149) Total: -44 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07libbb: rename bb_ask -> bb_ask_noecho, bb_ask_confirmation -> ↵Denys Vlasenko
bb_ask_y_confirmation Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07telnet: move winsize detection closer to I/O loop, delete non-functioning ↵Denys Vlasenko
debug code Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07ftpd: allow -A if !FTPD_AUTHENTICATION as wellDenys Vlasenko
Users will be able to use "ftpd -A" in scripts regardless of build config Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07ftpd: added -A option to disable all authentication, closes 10921Denys Vlasenko
function old new delta packed_usage 32745 32777 +32 ftpd_main 2162 2156 -6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 32/-6) Total: 26 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07wget,ftpd: shorten and reuse stringsDenys Vlasenko
function old new delta wget_main 2382 2386 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 4/0) Total: 4 bytes text data bss dec hex filename 934228 477 7296 942001 e5fb1 busybox_old 934202 477 7296 941975 e5f97 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-07httpd: do not default to Content-type: application/octet-streamDenys Vlasenko
Instead, simply don't send this header. On Mon, Apr 2, 2018 at 8:17 PM, xisd <xisd-dev@riseup.net> wrote: > I had some trouble using busybox httpd to serve a static website and I > thought the issue might be of interest. > > My problem is related to something that seem quite common for static > site generator : the use of html files without the '.html' extension > (it is called 'clean url'...) > > Most web server guess that these files are html and display them like > any other .html files. > > From what I understood, the MIME type for files without extension in > busybox htttp default settings is 'application/octet-stream', and > because of that 'clean url' pages are not displayed. > > It is only trouble because I wanted to deploy my website on freshly > installed linux without editing any configuration. > > The default MIME setting make sense to me as it is, I just thought that > might be worth mentioning since the use of 'clean url' seem to be a > common practice for static sites generators (the one I use is callled > 'yellow' (https://github.com/datenstrom/yellow)) > > Here is a link for the related issue on github : > https://github.com/datenstrom/yellow/issues/317 function old new delta send_headers 702 718 +16 send_headers_and_exit 23 20 -3 handle_incoming_and_exit 2794 2791 -3 send_file_and_exit 772 756 -16 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/3 up/down: 16/-22) Total: -6 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-06scripts/kconfig/mconf.c: survive is SIGWINCH is not definedDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-06i386: make stack size optimization selectable, and allow i486 insns (bswap)Denys Vlasenko
It's hard to imagine someone still using non-bswap equipped CPU function old new delta xmalloc_optname_optval 888 879 -9 write_leases 214 205 -9 write32 36 27 -9 update_status 612 603 -9 udhcpd_main 1468 1459 -9 udhcpc_main 2708 2699 -9 udhcp_run_script 804 795 -9 sha256_process_block64 423 414 -9 sha1_process_block64 337 328 -9 sha1_end 80 71 -9 send_ACK 161 152 -9 select_lease_time 64 55 -9 rpm_getint 118 109 -9 readprofile_main 1719 1710 -9 read32 33 24 -9 rdate_main 236 227 -9 machtime 39 30 -9 inet_addr_match 103 94 -9 get_prefix 344 335 -9 f_write32 31 22 -9 f_read32 31 22 -9 dumpleases_main 620 611 -9 KeyExpansion 197 188 -9 udhcp_str2optset 536 518 -18 read_config 222 204 -18 lfp_to_d 55 37 -18 ipaddr_modify 1226 1208 -18 dnsd_main 1278 1260 -18 des_crypt 1344 1326 -18 d_to_lfp 106 88 -18 bb_bswap_64 29 11 -18 INET_setroute 827 809 -18 read_leases 330 309 -21 zcip_main 1256 1229 -27 send_offer 476 449 -27 ipcalc_main 534 507 -27 handle_incoming_and_exit 2821 2794 -27 fmt_time_bernstein_25 131 104 -27 common_traceroute_main 3804 3768 -36 rpm_gettags 451 397 -54 parse_args 1412 1358 -54 volume_id_probe_hfs_hfsplus 627 564 -63 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/42 up/down: 0/-732) Total: -732 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2018-04-06placate gcc-8.0.1 warningsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>