aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* hush: implement $-, set default PATH if it is not set on startupDenys Vlasenko2019-05-191-5/+26
| | | | | | | | | | | function old new delta expand_one_var 2311 2362 +51 hush_main 1075 1104 +29 parse_dollar 790 791 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 81/0) Total: 81 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: set default PS1/2 only if we interactiveDenys Vlasenko2019-05-191-16/+19
| | | | | | | | | | "env - hush SCRIPT" invocation (that is, with empty environment) should not show PS1/2 in "set" output. function old new delta hush_main 1070 1075 +5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: handle LINENO the same way as RANDOM: variable is "ephemeral"Denys Vlasenko2019-05-191-32/+18
| | | | | | | | | | | | | | | "env - hush" invocation (that is, with empty environment) should not show LINENO in "set" output. function old new delta get_local_var_value 263 294 +31 hush_main 1105 1070 -35 handle_changed_special_names 79 38 -41 run_pipe 1834 1765 -69 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/3 up/down: 31/-145) Total: -114 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* networking: cc is not a registerKhem Raj2019-05-173-19/+19
| | | | | | | | | | | | | | | | | | | gcc accepts __asm__ ( "" : : : "%cc"); but cc is not a real register and clang does not like it. networking/tls_pstm_montgomery_reduce.c:385:4: error: unknown register name '%cc' in asm | INNERMUL; | ^ The % syntax nominally goes before a register, in this case cc, like "memory" isn't a true register it's just a way of specifying that the condition code registers for the target are clobbered Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: remove code to track PS1/2 values dynamically - it's too much workDenys Vlasenko2019-05-161-61/+21
| | | | | | | | | | | | | | | | | | | | | | | Assignments / exports / unsets of variables are far more frequent than prompt printing, and if we show prompt, we are likely to be limited by user typing speed - do not optimize for that scenario. Just re-query $PS1 / $PS2 values when need to show the prompt. function old new delta fgetc_interactive 236 259 +23 set_vars_and_save_old 150 147 -3 pseudo_exec_argv 597 594 -3 hush_main 1110 1105 -5 enter_var_nest_level 38 32 -6 builtin_local 56 50 -6 run_pipe 1857 1834 -23 leave_var_nest_level 127 98 -29 handle_changed_special_names 111 79 -32 cmdedit_update_prompt 57 - -57 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/8 up/down: 23/-164) Total: -141 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* typo fix in commentDenys Vlasenko2019-05-161-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: small speedup in handle_changed_special_names()Denys Vlasenko2019-05-161-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpd: code shrinkDenys Vlasenko2019-05-161-8/+12
| | | | | | | | | | | function old new delta send_packet_verbose - 35 +35 send_offer 443 423 -20 send_ACK 152 131 -21 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/2 up/down: 35/-41) Total: -6 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpd: support per-client hostnames in static leasesDenys Vlasenko2019-05-163-16/+71
| | | | | | | | | | function old new delta read_staticlease 222 299 +77 add_server_options 92 154 +62 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 139/0) Total: 139 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* shell: add TODO comment about BASE#nnn literalsDenys Vlasenko2019-05-161-0/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* dc: make 4 % 0 emit error messgaes and set result to 0Denys Vlasenko2019-05-161-7/+12
| | | | | | | function old new delta mod 105 136 +31 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpc6: unbreakDenys Vlasenko2019-05-151-0/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: fix quoted "${notexist-}" expansion to not disappearDenys Vlasenko2019-05-155-0/+20
| | | | | | | function old new delta expand_one_var 2296 2311 +15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpd: code shrink - do not fetch requested IP twiceDenys Vlasenko2019-05-151-11/+9
| | | | | | | | | | function old new delta send_offer 444 443 -1 udhcpd_main 1454 1442 -12 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-13) Total: -13 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* shells: add tests for backslashes in export VAR=VALDenys Vlasenko2019-05-144-0/+6
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: fix "export PS1=xyz" and "local PS1=xyz" messing up promptDenys Vlasenko2019-05-143-32/+40
| | | | | | | | | | | | | | | | | | | | function old new delta helper_export_local 215 253 +38 leave_var_nest_level 107 127 +20 run_pipe 1840 1857 +17 handle_changed_special_names 101 105 +4 shell_builtin_read 1399 1398 -1 done_word 767 766 -1 parse_stream 2249 2245 -4 set_local_var 437 430 -7 is_well_formed_var_name 66 - -66 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 4/4 up/down: 79/-79) Total: 0 bytes text data bss dec hex filename 952376 485 7296 960157 ea69d busybox_old 952400 485 7296 960181 ea6b5 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* dd: fix handling of short result of full_write(), closes 11711Denys Vlasenko2019-05-142-14/+15
| | | | | | | | | | | | | $ dd bs=1G <sda1 of=/dev/sda1 dd: error writing '/dev/sda1': No space left on device 1+0 records in 0+0 records out 999292928 bytes (953.0MB) copied, 0.784617 seconds, 1.2GB/s function old new delta write_and_stats 99 102 +3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* style fix, no code changesDenys Vlasenko2019-05-146-9/+25
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* sed: fix /regex/,+N match triggering only once, closes 11871Denys Vlasenko2019-05-132-0/+8
| | | | | | | function old new delta process_files 2235 2246 +11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* udhcpd: code shrinkDenys Vlasenko2019-05-101-6/+10
| | | | | | | | | | | | | | | function old new delta is_nip_reserved_as_static - 28 +28 get_static_nip_by_mac 43 47 +4 udhcpd_main 1459 1454 -5 send_offer 449 444 -5 read_leases 309 299 -10 is_nip_reserved 20 - -20 packed_usage 33283 33243 -40 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 1/4 up/down: 32/-80) Total: -48 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ln: correct 'ln -T' usage messageJohn L. Hammond2019-05-091-1/+1
| | | | | Signed-off-by: John L. Hammond <jhammond@indeed.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* dc: code shrinkDenys Vlasenko2019-05-091-6/+16
| | | | | | | | | | | function old new delta check_under 20 21 +1 print_no_pop 32 27 -5 pop 24 18 -6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 1/-11) Total: -10 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ps: ensure fields are separated by at least one space, closes 11826Denys Vlasenko2019-05-031-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* login: remove extra IF(), no code changesDenys Vlasenko2019-05-021-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Optionally re-introduce bb_info_msg()James Byrne2019-04-3020-99/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Between Busybox 1.24.2 and 1.25.0 the bb_info_msg() function was eliminated and calls to it changed to be bb_error_msg(). The downside of this is that daemons now log all messages to syslog at the LOG_ERR level which makes it hard to filter errors from informational messages. This change optionally re-introduces bb_info_msg(), controlled by a new option FEATURE_SYSLOG_INFO, restores all the calls to bb_info_msg() that were removed (only in applets that set logmode to LOGMODE_SYSLOG or LOGMODE_BOTH), and also changes informational messages in ifplugd and ntpd. The code size change of this is as follows (using 'defconfig' on x86_64 with gcc 7.3.0-27ubuntu1~18.04) function old new delta bb_info_msg - 182 +182 bb_vinfo_msg - 27 +27 static.log7 194 198 +4 log8 190 191 +1 log5 190 191 +1 crondlog 45 - -45 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 3/0 up/down: 215/-45) Total: 170 bytes If you don't care about everything being logged at LOG_ERR level then when FEATURE_SYSLOG_INFO is disabled Busybox actually gets smaller: function old new delta static.log7 194 200 +6 log8 190 193 +3 log5 190 193 +3 syslog_level 1 - -1 bb_verror_msg 583 581 -2 crondlog 45 - -45 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 3/1 up/down: 12/-48) Total: -36 bytes Signed-off-by: James Byrne <james.byrne@origamienergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbbb: find_mount_point() too eager to stat mounted devicesDenys Vlasenko2019-04-291-2/+13
| | | | | | | | | | | | | | | | | | | None of the below "devices" (first word on the line) are real. sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 devtmpfs /dev devtmpfs rw,nosuid,size=7917900k,nr_inodes=1979475,mode=755 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /run tmpfs rw,nosuid,nodev,mode=755 0 0 pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0 configfs /sys/kernel/config configfs rw,relatime 0 0 tmpfs /tmp tmpfs rw,relatime 0 0 function old new delta find_mount_point 297 302 +5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* start-stop-daemon: do try to close fds > 2Denys Vlasenko2019-04-291-8/+9
| | | | | | | | | | | | | sh -c 'exec 3>&1; exec start-stop-daemon -S -b -x /bin/sleep -- 123' now closes fd 3. function old new delta bb_daemonize_or_rexec 183 192 +9 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 9/0) Total: 9 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ip: fix comment placementDenys Vlasenko2019-04-291-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ifupdown: close memory leakDenys Vlasenko2019-04-281-3/+9
| | | | | | | function old new delta execute_all 80 91 +11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* vi: enable 'dG' command. Closes 11801Ron Yorston2019-04-281-4/+7
| | | | | | | | | | | | | | | | | The 'G' command was omitted from the list of commands that change or delete whole lines. Add it in the appropriate places so the 'dG', 'cG' and 'yG' commands work, including in cases where an explicit line number has been supplied. function old new delta find_range 534 596 +62 .rodata 175166 175167 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 63/0) Total: 63 bytes Reported-by: David Kelly <david.kelly@liberica.ch> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* vi: fix changes to word at end of line. Closes 11796Ron Yorston2019-04-281-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As reported in bug 11796 BusyBox vi incorrectly handles changes to a word at the end of a line. If the following line starts with whitespace changing or deleting the last word of a line with the 'cw' or 'dw' commands causes the lines to be joined. This happens because the range for the change returned by find_range() covers all whitespace after the word, including newlines. The problem can be fixed by setting 'ml' to zero to indicate to yank_delete() that processing should stop at the end of the current line. However, this results in a new problem. 'dw' correctly deletes all whitespace following the word but so does 'cw', which should preserve the trailing whitespace. To fix this the code to omit whitespace from the change is modified to include all whitespace not just blanks. function old new delta do_cmd 5034 5069 +35 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 35/0) Total: 35 bytes Reported-by: David Kelly <david.kelly@liberica.ch> Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash,hush: ulimit: add -i RLIMIT_SIGPENDING, -q RLIMIT_MSGQUEUEDenys Vlasenko2019-04-281-3/+19
| | | | | | | | | | | | | | function old new delta limits_tbl 104 120 +16 ulimit_opt_string 44 50 +6 limit_chars 14 16 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/0 up/down: 24/0) Total: 24 bytes text data bss dec hex filename 981996 485 7296 989777 f1a51 busybox_old 982065 485 7296 989846 f1a96 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash,hush: bash compat for ulimit: reorder to matchDenys Vlasenko2019-04-281-72/+53
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash,hush: bash compat for ulimit: -w => -x, -p => -uDenys Vlasenko2019-04-271-12/+16
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash,hush: fix ulimit to be more bash-compat, closes 11791Denys Vlasenko2019-04-271-84/+181
| | | | | | | | | | function old new delta shell_builtin_ulimit 486 651 +165 limit_chars - 14 +14 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/0 up/down: 179/0) Total: 179 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* start-stop-daemon: Fix -x is not required for -KAlexander Vickberg2019-04-271-15/+20
| | | | | | | | | | | | | | Commit 088fec36fedff2cd50437c95b7fb430abf8d303c made -x required for all. However it isn't for -K. function old new delta start_stop_daemon_main 1084 1105 +21 packed_usage 33343 33326 -17 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 21/-17) Total: 4 bytes Signed-off-by: Alexander Vickberg <wickbergster@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* examples/var_service: use "exec sleep 5" instead of "{ sleep 5; exit; }"Denys Vlasenko2019-04-215-5/+5
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: do disable header reading timeout even if proxyingDenys Vlasenko2019-04-191-0/+2
| | | | | | | function old new delta handle_incoming_and_exit 2362 2369 +7 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: use full size of iobuf[] when piping CGI dataDenys Vlasenko2019-04-192-14/+4
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: do not set alarm() timeout if we read cached headerDenys Vlasenko2019-04-191-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: deindent code block, no code changesDenys Vlasenko2019-04-191-91/+91
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: require "HTTP/xyz" at the end of request lineDenys Vlasenko2019-04-191-14/+8
| | | | | | | | | | | | function old new delta handle_incoming_and_exit 2379 2362 -17 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-17) Total: -17 bytes text data bss dec hex filename 981787 485 7296 989568 f1980 busybox_old 981779 485 7296 989560 f1978 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: catch error in arithmetic expansion in PS1Ron Yorston2019-04-191-12/+20
| | | | | | | | | | | | | | | | | | | | | Setting PS1 to: PS1='$((123+))' causes the shell to enter an infinite error loop: sh: arithmetic syntax error Catch any exception raised by expandarg() in expandstr() and allow processing to continue. function old new delta expandstr 262 344 +82 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 82/0) Total: 82 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: prevent error in backquotes in PS1 from exiting shellRon Yorston2019-04-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Setting PS1 to: PS1='`xxx(`' causes the shell to terminate with the error: sh: syntax error: unexpected end of file (expecting ")") This happens because old-style backquotes require the input to be reread and thus call setinputstring() a second time. Prevent the problem by unwinding all recently opened files in expandstr(). function old new delta unwindfiles - 22 +22 expandstr 247 262 +15 forkchild 631 625 -6 evalcommand 1694 1685 -9 ash_main 1346 1336 -10 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/3 up/down: 37/-25) Total: 12 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* dc.tests: fix two test case to also depend on DC_BIGChen Qi2019-04-191-3/+3
| | | | | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: pass authorization header to CGI if not BasicAlexander Vickberg2019-04-181-7/+7
| | | | | | | | | | | | Pass the Authorization header to CGI if not of type Basic. This will make it possible for CGI to verify authorization headers of type Bearer <token>. function old new delta handle_incoming_and_exit 2370 2379 +9 Signed-off-by: Alexander Vickberg <wickbergster@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* httpd: When sending gzipped content use content-length headerAlexander Vickberg2019-04-171-2/+45
| | | | | | | | | | | | | | | Today for gzipped content httpd is using a header with name Transfer-Length. However I can't find a header with that name in the standards. Instead use Content-Length. function old new delta .rodata 157940 157936 -4 send_headers 980 939 -41 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-45) Total: -45 bytes Signed-off-by: Alexander Vickberg <wickbergster@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: add bash-compatible EPOCH variablesRon Yorston2019-04-161-21/+56
| | | | | | | | | | | | | | | | | | | | | | | | Bash 5.0 added the dynamic variable EPOCHSECONDS and EPOCHREALTIME which return the number of seconds since the Unix Epoch as an integer or float. These are useful for logging or tracing. function old new delta change_epoch - 78 +78 .rodata 175167 175235 +68 varinit_data 264 312 +48 change_seconds - 24 +24 change_realtime - 24 +24 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 2/0 up/down: 242/0) Total: 242 bytes text data bss dec hex filename 938508 4203 1888 944599 e69d7 busybox_old 938702 4203 1888 944793 e6a99 busybox_unstripped v2: Cast tv_sec and tv_usec to unsigned quantities. Add brackets to macros. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ash: an unset dynamic variable should not be dynamicRon Yorston2019-04-161-0/+4
| | | | | | | | | | | | | | Commit b28d4c346 (ash: [VAR] Move unsetvar functionality into setvareq) dropped the code that caused dynamic variables to lose their special properties when unset. Add it back again. function old new delta setvareq 346 360 +14 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 14/0) Total: 14 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* hush: add bash-compatible EPOCH variablesRon Yorston2019-04-161-0/+20
| | | | | | | | | | | | | | | | | Bash 5.0 added the dynamic variable EPOCHSECONDS and EPOCHREALTIME which return the number of seconds since the Unix Epoch as an integer or float. These are useful for logging or tracing. function old new delta get_local_var_value 207 302 +95 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 95/0) Total: 95 bytes text data bss dec hex filename 938702 4203 1888 944793 e6a99 busybox_old 938797 4203 1888 944888 e6af8 busybox_unstripped Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>