aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * login: update UTMP before forkingJoachim Nilsson2020-11-161-3/+5
| | | | | | | | | | | | | | | | | | | | | | /bin/login updates the preliminary UTMP record created by /bin/getty for $LOGNAME. However, if the PID of login is not the same as getty, then it will create a new entry. This causes GLIBC getlogin(3) to return the string 'LOGIN' (set by getty) instead of $LOGNAME. This affects tools like /usr/bin/logname but also various 3rd party PAM applications. Signed-off-by: Joachim Nilsson <troglobit@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * awk: fix dodgy multi-char separators splitting logicDenys Vlasenko2020-11-161-9/+16
| | | | | | | | | | | | | | function old new delta awk_split 521 484 -37 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * chrt: support for musl C libraryChristian Eggers2020-11-151-2/+32
| | | | | | | | | | | | | | | | | | | | | | musl "implements" several sched_xxx() functions by returning ENOSYS. As an alternative, either pthread_(g|s)etschedparam() or direct syscalls can be used. References: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/schedutils/chrt.c?id=fcc3078754291d2f5121797eb91b364f8e24b2f1 References: http://git.musl-libc.org/cgit/musl/commit/src/sched/sched_setscheduler.c?id=1e21e78bf7a5c24c217446d8760be7b7188711c2 Signed-off-by: Christian Eggers <ceggers@arri.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Update copyright messageRon Yorston2021-01-132-2/+2
| | | | | | | | Hey, look! It's 2021 already.
* | win32: handle various Alt key modifiers in termiosChristopher Wellons2021-01-131-2/+16
| | | | | | | | | | | | | | | | | | | | This patch restores support for Bash-stle Alt commands present in the original BusyBox: * Alt-b, Alt-LeftArrow backward word * Alt-f, Alt-RightArrow forward word * Alt-BackSpace delete word backward * Alt-d delete word forward
* | win32: make realpath() return an error if necessaryRon Yorston2020-12-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | resolve_symlinks() uses GetFinalPathNameByHandleA which is loaded at runtime because it isn't available in all versions of Windows. If GetFinalPathNameByHandleA isn't available resolve_symlinks() (and hence realpath()) should return a NULL pointer to indicate an error, not the original path. Not returning NULL causes an infinite loop in do_lstat(). See GitHub issue #204.
* | winansi: intercept calls to fputc(3)Ron Yorston2020-12-072-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | Perform code page translation for fputc(3). It's only used in a few places but is needed to fix things like: $ echo € | dos2unix Ç $ paste -d € file1 file2 1Ç2 Unfortunately it breaks the inventive use of dos2unix in GitHub issue #203.
* | ash: suppress compiler warningRon Yorston2020-11-121-0/+1
| | | | | | | | | | | | | | The 64-bit compiler complains that 'status' in dowait() might be used uninitialised. The 32-bit compiler doesn't. Make it shut up.
* | win32: update default configurationRon Yorston2020-11-122-4/+2
| |
* | Merge branch 'busybox' into mergeRon Yorston2020-11-1290-487/+1009
|\|
| * hush: document bugs in [[ =~ ]] comparisonDenys Vlasenko2020-11-014-0/+28
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: update comments on the status of [[ ]] compatDenys Vlasenko2020-10-312-5/+4
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hush: add tests for unquoted < > in [[ ]]Denys Vlasenko2020-10-312-0/+5
| | | | | | | | | | | | They pass. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: better support of [[ ]] bashismDenys Vlasenko2020-10-3113-24/+209
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Still rather rudimentary for ash function old new delta binop 433 589 +156 check_operator 65 101 +36 done_word 736 769 +33 test_main 405 418 +13 parse_stream 2227 2238 +11 ops_texts 124 133 +9 ops_table 80 86 +6 run_pipe 1557 1562 +5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 8/0 up/down: 269/0) Total: 269 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * od: unbreak itDenys Vlasenko2020-10-252-25/+23
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * compat: move hexdump -R functionality to xxd -rDenys Vlasenko2020-10-252-64/+73
| | | | | | | | | | | | | | | | | | | | | | | | function old new delta xxd_main 466 680 +214 packed_usage 33474 33483 +9 hexdump_opts 17 16 -1 hexdump_main 565 401 -164 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/2 up/down: 223/-165) Total: 58 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hush: output bash-compat killing signal namesDenys Vlasenko2020-10-249-7/+92
| | | | | | | | | | | | | | | | | | This significantly syncronises ash-signals and hush-signals tests. function old new delta process_wait_result 449 450 +1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hush: do not print killing signal name in `cmd_whihc_dies_on_signal`Denys Vlasenko2020-10-243-1/+9
| | | | | | | | | | | | | | function old new delta process_wait_result 438 449 +11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hexdump: fix dup block comparisonDenys Vlasenko2020-10-202-1/+19
| | | | | | | | | | | | | | function old new delta bb_dump_dump 1523 1520 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * xxd: fix printing of trailing spacesDenys Vlasenko2020-10-204-59/+108
| | | | | | | | | | | | | | | | | | | | function old new delta bb_dump_dump 1497 1523 +26 xxd_main 459 466 +7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 33/0) Total: 33 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * uudecode: fix possible signed char bugDenys Vlasenko2020-10-071-4/+2
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * avoid using strok - eliminates use of hidden global variableDenys Vlasenko2020-10-0611-36/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta udhcp_str2optset 616 650 +34 setpriv_main 950 975 +25 switch_root_main 688 706 +18 parse 958 970 +12 getopt_main 622 628 +6 parse_resolvconf 302 306 +4 mpstat_main 1139 1142 +3 static.p 4 - -4 cdcmd 717 702 -15 strtok 148 - -148 ------------------------------------------------------------------------------ (add/remove: 0/3 grow/shrink: 7/1 up/down: 102/-167) Total: -65 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * httpd: code shrinkXabier Oneca2020-10-061-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | Use decode_base64() from uuencode.c when uudecode/base64 applets are included. That function is bigger than httpd's decodeBase64(), so we use the old one when those applets are disabled. Bloat-o-meter when one of those is enabled: function old new delta handle_incoming_and_exit 2371 2265 -106 Signed-off-by: Xabier Oneca <xoneca@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ip rule: add support for fwmark/fwmask for policy routingRui Salvaterra2020-10-032-7/+27
| | | | | | | | | | | | | | | | | | | | This adds support for fwmark/fwmask in ip rule which is needed, for example, in OpenWrt's mwan3. Masks are supported since Linux 2.6.19. Fixes: https://bugs.busybox.net/show_bug.cgi?id=11621 Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tar: fix fallout of last_char_is(NULL) no longer being allowedDenys Vlasenko2020-10-021-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * udhcp: remove struct packing attribute, eliminates gcc-9.xDenys Vlasenko2020-10-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | "error: taking address of packed member of 'struct ip_udp_dhcp_packet' may result in an unaligned pointer value" here: udhcp_dump_packet(&packet.data); and in other places. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: shrink recursive_action() by reducing memory pressureDenys Vlasenko2020-10-0119-150/+159
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta recursive_action1 - 316 +316 file_action_grep 161 164 +3 add_to_prg_cache_if_socket 202 205 +3 depmod_main 509 511 +2 writeFileToTarball 488 489 +1 parse_module 281 282 +1 fileAction 207 208 +1 act 189 190 +1 add_to_dirlist 65 64 -1 writeTarFile 196 194 -2 uuidcache_init 47 45 -2 uuidcache_check_device 109 107 -2 true_action 8 6 -2 run_parts_main 310 308 -2 netstat_main 534 532 -2 lsusb_main 29 27 -2 lspci_main 45 43 -2 initial_scan 138 136 -2 grep_main 845 843 -2 find_main 482 480 -2 config_file_action 437 435 -2 chmod_main 142 140 -2 dirAction 14 10 -4 diff_main 1544 1540 -4 chown_main 154 148 -6 skip_dir 136 129 -7 dir_act 191 184 -7 recursive_action 453 69 -384 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 7/20 up/down: 328/-439) Total: -111 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tydy up a few uses of recursive_action(), no logic changesDenys Vlasenko2020-10-013-13/+14
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * gcc-9.x warning fixesDenys Vlasenko2020-10-019-12/+15
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: do not open-code __errno_location() callDenys Vlasenko2020-10-011-1/+6
| | | | | | | | | | | | Thanks dalias! Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: remove FAST_FUNC from a static functionDenys Vlasenko2020-10-011-2/+2
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: extend "errno pointer" trick to other than __GLIBC__Denys Vlasenko2020-10-013-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Savings on musl: function old new delta resume_main 582 614 +32 lbb_prepare - 20 +20 seq_main 432 449 +17 fgetsetversion 74 88 +14 ... script_main 1207 1180 -27 close_silently 28 - -28 shell_builtin_ulimit 655 626 -29 lineedit_read_key 280 247 -33 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 25/123 up/down: 182/-882) Total: -700 bytes text data bss dec hex filename 1005858 551 5676 1012085 f7175 busybox_old 1005136 551 5680 1011367 f6ea7 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * mount: support the sizelimit and offset option for loop devicesSteffen Trumtrar2020-10-014-4/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Starting with linux kernel v5.4 squashfs has a more strict parameter checking implemented. Unlike util-linux mount, busybox never supported the sizelimit option but simply forwards it to the kernel. Since v5.4 mounting will fail with squashfs: Unknown parameter 'sizelimit' Support the sizelimit parameter by setting it in the LOOP_SET_STATUS64 structure before handing it to the kernel. While at it also add support for the offset option, which currently will always be set to 0. function old new delta cut_out_ull_opt - 167 +167 singlemount 1230 1266 +36 set_loop 834 862 +28 losetup_main 479 483 +4 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 3/0 up/down: 235/0) Total: 235 bytes Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: fold common64_hash() into its only userDenys Vlasenko2020-09-301-47/+28
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * xargs: fix -I SUBSTR behaviourDenys Vlasenko2020-09-302-5/+24
| | | | | | | | | | | | | | function old new delta process_stdin_with_replace 165 204 +39 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: add testsuite for "wait $pid" waiting for other tasksDenys Vlasenko2020-09-294-0/+18
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ash: jobs: Fix waitcmd busy loopDenys Vlasenko2020-09-291-57/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream commit: Date: Tue, 2 Jun 2020 23:46:48 +1000 jobs: Fix waitcmd busy loop We need to clear gotsigchld in waitproc because it is used as a loop conditional for the waitcmd case. Without it waitcmd may busy loop after a SIGCHLD. This patch also changes gotsigchld into a volatile sig_atomic_t to prevent compilers from optimising its accesses away. Fixes: 6c691b3e5099 ("jobs: Only clear gotsigchld when waiting...") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> This change also incorporates other changes to bring us closer to upstream. function old new delta dowait 553 636 +83 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ash: jobs: Fix infinite loop in waitprocDenys Vlasenko2020-09-291-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Upstream commit: Date: Fri, 10 Apr 2020 21:03:09 +1000 jobs: Fix infinite loop in waitproc After we changed the resetting of gotsigchld so that it is only done if jp is NULL, we can now get an infinite loop in waitproc if gotsigchld is set but there is no outstanding child because everything had been waited for previously without gotsigchld being zeroed. This patch fixes it by always zeroing gotsigchld as we did before. The bug that the previous patch was trying to fix is now resolved by switching the blocking mode to DOWAIT_NORMAL after the specified job has been completed so that we really do wait for all outstanding dead children. Reported-by: Harald van Dijk <harald@gigawatt.nl> Fixes: 6c691b3e5099 ("jobs: Only clear gotsigchld when waiting...") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> function old new delta dowait 553 631 +78 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ash: remove a tentative TODO, it's a wrong ideaDenys Vlasenko2020-09-291-1/+1
| | | | | | | | | | | | | | | | | | | | Upstream tried it, and then reverted by: From: Herbert Xu <herbert@gondor.apana.org.au> Date: Tue, 26 May 2020 23:19:05 +1000 parser: Fix double-backslash nl in old-style command sub Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ntpd: fix the case where two replies received at once and first one causes a ↵Denys Vlasenko2020-09-291-0/+9
| | | | | | | | | | | | | | | | | | step function old new delta recv_and_process_peer_pkt 2476 2486 +10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | build system: use static ssp libraryRon Yorston2020-11-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The previous commit got rid of a link error but generates a binary that isn't standalone: it requires libssp-0.dll. Force the use of the static ssp library. This also requires mingwex to be added to LDLIBS, since that's what has a dependency on ssp. Other workarounds are to compile with non-zero _FORTIFY_SOURCE (which increases the size of the binary) or to add '-u ___strcpy_chk' to LDFLAGS (likely to be fragile).
* | build: add ssp libraryRon Yorston2020-11-111-1/+1
| | | | | | | | | | | | | | With recent MinGW-w64 we get an undefined reference to __strcpy_chk if we don't include ssp. https://sourceforge.net/p/mingw-w64/bugs/818/
* | win32: make location of Unix-style absolute paths configurableRon Yorston2020-08-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously busybox-w32 was enhanced so certain Unix-style absolute paths of the form '/dir/file' were treated as being relative to the system drive. (Notionally as reported by %SYSTEMDRIVE% but in fact derived from the API call GetSystemDirectory().) Make the location of such files configurable by the BB_SYSTEMROOT environment variable. - BB_SYSTEMROOT should probably only refer to a Windows-style absolute path, but this isn't checked. - Set BB_SYSTEMROOT using the Windows Control Panel or setx, not as a shell variable: the shell itself won't see the environment variable.
* | ash, ls: improve support for 'c:path'Ron Yorston2020-08-284-21/+9
| | | | | | | | | | | | | | | | | | | | Revert commit 249f68e3c (win32: append '/' to bare drive name in opendir). Instead add better handling for paths of the form 'c:path' to ls and expmeta() in ash. Adds 64 bytes.
* | printf: ensure '\045' is printed as '%'Ron Yorston2020-08-281-5/+10
| | | | | | | | | | | | | | | | | | Using printf() instead of fputs() to save a few bytes was a false economy. printf() eats percent signs. See GitHub issue #199. Adds 32 bytes.
* | ash: replace backslashes in argument to 'cd' built-inRon Yorston2020-08-271-1/+1
| | | | | | | | | | | | | | Since the new current directory is normalised it might as well also have forward slashes. See GitHub issue #198.
* | printf: prevent '\0' in format string from truncating outputFRP-3578-g359211429Ron Yorston2020-08-241-1/+9
| | | | | | | | | | | | | | | | | | Commit 4a2af48e6 (printf: emit more contiguous text to improve escape sequences) didn't treat an escaped null byte in the format string correctly. The output string was truncated at the null byte. Detect this case, output the partial string and the null byte and carry on.
* | httpd: silence compiler warnings about %llx formatRon Yorston2020-08-231-1/+1
| |
* | win32: update default configurationRon Yorston2020-08-232-2/+10
| |
* | libbb: reinstate NULL check in last_char_is()Ron Yorston2020-08-231-1/+1
| | | | | | | | | | | | | | | | Upstream commit 79a4032ee removed the test for a NULL argument to last_char_is(). As reported in the upstream bug tracker this can cause tar to segfault: https://bugs.busybox.net/show_bug.cgi?id=13131