aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-02-04lineedit: fix SEGV in isk, hexedit, ed, closes 11661Denys Vlasenko
fdisk, hexedit and ed calls read_line_edit in libbb/lineedit.c with NULL as first argument. On line 2373 of lineedit.c of busybox version 1.29.3, state->hist_file is referenced without checking the state->flag. This causes segmentation fault on fdisk, hexedit and ed on ARM Cortex-A9. It somehow works on x86_64. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-02service examples: do not respawn supplicant too oftenDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-29grep: short-circuit -v to bail out on first matchAri Sundholm
A small optimization. There is no need to try matching the current input line against any further patterns if a match was already found and -v is specified. function old new delta grep_file 1463 1440 -23 Signed-off-by: Ari Sundholm <ari@tuxera.com> Signed-off-by: Niko Vähäsarja <niko@tuxera.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-29grep: fix -x -v with certain pattern ordersAri Sundholm
We found out that busybox -x -v is a bit broken: ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -e 'aa.*' -e '.*bb.*' aa bb cc ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -v -e 'aa.*' -e '.*bb.*' ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -e '.*aa.*' -e 'bb.*' aa bb cc ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -v -e '.*aa.*' -e 'bb.*' aa bb cc Last one is wrong. This patch fixes the issue by making sure that the variable 'found' never makes a transition from 1 to 0, as this would mean that grep previously found a match on this input line. Signed-off-by: Ari Sundholm <ari@tuxera.com> Signed-off-by: Niko Vähäsarja <niko@tuxera.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-25bc: implement pass-by-reference code from upstreamDenys Vlasenko
function old new delta zxc_program_popResultAndCopyToVar 298 493 +195 bc_vec_pushIndex - 75 +75 zxc_vm_process 859 928 +69 xc_program_dereference - 66 +66 bc_vec_npush - 65 +65 zbc_num_s 239 249 +10 zxc_program_num 1024 1032 +8 zbc_num_divmod 150 156 +6 xc_program_search 143 146 +3 zxc_program_assign 392 389 -3 zdc_program_execStr 520 517 -3 xc_program_pushVar 198 195 -3 zxc_program_exec 4101 4092 -9 zbc_program_call 318 308 -10 zbc_func_insert 120 104 -16 zbc_parse_stmt_possibly_auto 1460 1439 -21 bc_vec_push 53 12 -41 xc_parse_pushIndex 61 18 -43 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 6/9 up/down: 497/-149) Total: 348 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-22login: close PAM session on errors as well, not only on successDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-22ip link: Fix vlan proto, closes 8261 and 11638Bernhard Reutner-Fischer
The proto has to be passed in network byte-order. While at it allow for ip link add link eth0 name eth0.2.24 type vlan proto 802.1ad id 24 ip link del link eth0 name eth0.2.24 type vlan proto 802.1ad id 24 The del was lacking a dev_str and thus errored out. Fix by using name/dev counterpart as fallback. The proto identifier 802.1Q was not recognized, just it's lowercase variant, fix that too. function old new delta do_add_or_delete 1275 1376 +101 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 101/0) Total: 101 bytes Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2019-01-22ip link: fix mismatched enums in vlan_parse_opt(), closes 11631Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21wget: detect when the length of received file is less than advertisedDenys Vlasenko
function old new delta retrieve_file_data 579 596 +17 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21sed: code shrinkDenys Vlasenko
function old new delta parse_file_cmd 115 94 -21 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21sed: Fix backslash parsing for 'w' command argBrian Foley
If there's any whitespace between w and the filename, parse_file_cmd writes to the wrong offset when trying to fix up backslashes. This can be seen in the asan build with busybox sed -e 'w 0\\' Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21awk: Fix overly permissive func arg list parsingBrian Foley
It allows things like 'func f(a b)' and 'func f(a,)' which GNU awk forbids. function old new delta parse_program 327 367 +40 chain_expr 40 67 +27 parse_expr 891 915 +24 EMSG_TOO_FEW_ARGS 30 18 -12 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/1 up/down: 91/-12) Total: 79 bytes Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21awk: Syntax error if delete isn't given an arg.Brian Foley
Unlike exit and return, delete strictly requires an arg, and derefs a null pointer if executed without one. Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21awk: Guard pointer chasing when parsing ternary expressions.Brian Foley
Avoids an uninit pointer deref for some malformed ternary exprs. Add a test that would crash in busybox before this fix. Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21capability: fix string comparison in cap_name_to_numberMark Marshall
The result of strcasecmp was being used incorrectly. This function returns 0 if the strings match. Signed-off-by: Mark Marshall <mark.marshall@omicronenergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-18wget: remove empty if/endif preprocessor directive pairDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-18service examples: ifplugd -M to prevents frequent respawningDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-18checkstack.pl: tweak bfin reBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2019-01-17checkstack: pull from upstreamBernhard Reutner-Fischer
merge upstream changes Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2019-01-17checkstack.pl: fix arch autodetectionBernhard Reutner-Fischer
chomp trailing newlines Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2019-01-17wget: don't notify on download begin and end if quietMartin Lewis
When printing notification on download start and end, mistakenly, it didn't respect the quiet option function old new delta retrieve_file_data 561 579 +18 wget_main 2432 2437 +5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 23/0) Total: 23 bytes Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-15Update examples/udhcp/udhcpd.confDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-14start-stop-daemon: fix "both -x and -a" case: -a does override argv[0]Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-14start-stop-daemon: create pidfile before parent exits, closes 8596Denys Vlasenko
This removes DAEMON_DOUBLE_FORK flag from bb_daemonize_or_rexec(), as SSD was the only user. Also includes fix for -S: now works without -a and -x, does not print pids (compat with "start-stop-daemon (OpenRC) 0.34.11 (Gentoo Linux)"). function old new delta start_stop_daemon_main 1018 1084 +66 add_interface 99 103 +4 fail_hunk 139 136 -3 bb_daemonize_or_rexec 205 183 -22 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/2 up/down: 70/-25) Total: 45 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-12adduser: fix a bug of getpwnam() overwriting shell name, closes 8586Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-10tls: code shrinkDenys Vlasenko
function old new delta lm_add 82 78 -4 curve25519 793 786 -7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-11) Total: -11 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-09nslookup: return exitcode 1 on resolution errorsDenys Vlasenko
function old new delta nslookup_main 757 760 +3 send_queries 1690 1677 -13 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-09telnet: placate compiler's warningDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-09date: improve help text for -DDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-09bc: code shrinkDenys Vlasenko
function old new delta xc_parse_pushInst_and_Index - 16 +16 zbc_parse_expr 1818 1816 -2 xc_parse_pushIndex 65 61 -4 zbc_parse_pushSTR 63 58 -5 zbc_parse_name 448 442 -6 xc_parse_pushNUM 74 67 -7 zdc_parse_expr 479 470 -9 bc_parse_pushJUMP_ZERO 21 12 -9 bc_parse_pushJUMP 21 12 -9 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/8 up/down: 16/-51) Total: -35 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-08bc: remove "empty expression" check/message, parsing fails in these cases anywayDenys Vlasenko
function old new delta zbc_parse_expr 1848 1818 -30 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-08bc: zbc_parse_expr_empty_ok() is unused except by zbc_parse_expr(), fold it inDenys Vlasenko
function old new delta zbc_parse_expr 1865 1848 -17 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-08bc: disallow invalid syntax like "{ print 1 print 2 }"Denys Vlasenko
statement parsing must NOT eat the terminator: caller needs to know what it was, to correctly decide whether it is a valid one. function old new delta zxc_program_read - 234 +234 zdc_program_printStream - 144 +144 zbc_parse_stmt_possibly_auto 1413 1460 +47 zxc_vm_process 869 859 -10 zxc_program_exec 4116 4101 -15 zdc_program_asciify 368 - -368 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 1/2 up/down: 425/-393) Total: 32 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-08passwd: initialize pointers correctlyEinar Jón
Fix for running passwd as root (or sudo passwd $USER). Crashed on call to free(orig) during cleanup. Fix regression from commit 17058a06c4333fc0c492c168c8a971ebd0fd5a5a Root user never changes the orig pointer, so when cleaning up, passwd tried to free orig=(char*)"" Example: sudo passwd $USER Changing password for xxx New password: Bad password: too short Retype password: Passwords don't match free(): invalid pointer Aborted function old new delta passwd_main 958 961 +3 Signed-off-by: Einar Jón <tolvupostur@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-08tls: add comment about dl.fedoraproject.org needing secp256r1 ECC curveDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-07udhcpc: when decoding DHCP_SUBNET, ensure it is 4 bytes longDenys Vlasenko
function old new delta udhcp_run_script 795 801 +6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-07udhcp: code shrinkDenys Vlasenko
function old new delta attach_option 406 349 -57 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-07sleep: support "inf"Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-06build system: fix compiler warningsDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-06find: handle leading -- argumentDenys Vlasenko
function old new delta find_main 464 478 +14 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-06telnet: provide feedback after successful connectDanijel Tasov
The real telnet provides some feedback: Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. We should do this to, because people are sitting there and think a firewall is dropping packets. function old new delta telnet_main 1270 1279 +9 Signed-off-by: Danijel Tasov <m@rbfh.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-06telnetd: fix bad interaction with vhangup() from loginDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-06telnet: code shrinkDenys Vlasenko
function old new delta put_iac3_IAC_x_y_merged - 21 +21 put_iac4_msb_lsb - 19 +19 put_iac2_msb_lsb - 19 +19 put_iac 20 34 +14 iac_flush 32 36 +4 put_iac2_merged 46 - -46 telnet_main 1492 1270 -222 ------------------------------------------------------------------------------ (add/remove: 3/1 grow/shrink: 2/1 up/down: 77/-268) Total: -191 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-06telnet: speed up processing of network inputDenys Vlasenko
function old new delta telnet_main 1482 1492 +10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04ip: print dadfailed flagKaarle Ritvanen
Signed-off-by: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04ls: make -i compatible with coreutils: don't follow symlink by defaultMartijn Dekker
Signed-off-by: Martijn Dekker <martijn@inlv.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04wget: notify on download begin and endMartin Lewis
When using -o to file the progress meter is not displayed, so write that we started the download and that we finished it. function old new delta retrieve_file_data 465 561 +96 wget_main 2412 2432 +20 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 116/0) Total: 116 bytes text data bss dec hex filename 979022 485 7296 986803 f0eb3 busybox_old 979224 485 7296 987005 f0f7d busybox_unstripped Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04wget: add -o flagMartin Lewis
function old new delta wget_main 2348 2412 +64 packed_usage 33062 33093 +31 static.wget_longopts 252 266 +14 progress_meter 158 159 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 110/0) Total: 110 bytes Signed-off-by: Martin Lewis <martin.lewis.x84@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04bc: shorten "limits" outputDenys Vlasenko
text data bss dec hex filename 979016 485 7296 986797 f0ead busybox_old 978959 485 7296 986740 f0e74 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-04bc: formatting changes, added a FIXME comment, no logic changesDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>