summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* win32: rmdir(2) shouldn't delete symlinksFRP-4487-gd239d2d52Ron Yorston2021-10-171-1/+8
| | | | | | | | On Linux rmdir(2) refuses to delete a symlink to a directory on the obvious grounds that a symlink isn't a directory. Windows' rmdir() is less discriminating. Make our implementation of rmdir(2) behave more like Linux.
* win32: code shrinkRon Yorston2021-10-161-9/+16
| | | | | | | | | There are a few places in mingw.c where we want to determine if a file is a symbolic link. Previously these called mingw_lstat() which collects far more information than is actually needed. Create a new is_symlink() function which does the minimum work necessary.
* ash: display job id and pid of background commandsRon Yorston2021-10-141-1/+5
| | | | | | | Several common shells display the job id and pid of background commands. Even the Unix V7 Bourne shell displays the pid. This is unrelated to whether job control is available or enabled.
* ash: silence compiler warningsRon Yorston2021-10-142-3/+9
| | | | | On 64-bit systems mingw-w64 defines pid_t as a 64-bit integer so some printf calls caused compiler warnings.
* realpath: improved support for Windows pathsRon Yorston2021-10-134-10/+55
| | | | | | | | | | | | | | | | Upstream commit 94eb1c4dc (libbb: better coreutils compatibility for realpath) made some changes to xmalloc_realpath_coreutils(). This now needs to be updated to handle Windows paths. - Expose the macro is_unc_path() and part of the recent change to bb_get_last_path_component_nostrip() as a separate funtion, get_last_slash(); - Convert a couple of errors relating to network filesystems to ENOENT; - Adjust xmalloc_realpath_coreutils() to handle Windows directory separators, relative paths and UNC paths.
* Merge branch 'busybox' into mergeRon Yorston2021-10-1367-1604/+2156
|\
| * shell: tweak --helpDenys Vlasenko2021-10-132-2/+2
| | | | | | | | | | | | | | | | Even though formally it is -s [ARGS], "sh -s" without ARGS is the same as just "sh". And we are already over 80 chars wide for ash --help, so make it shorter. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hush: in a comment, document what -i might be doingDenys Vlasenko2021-10-132-6/+28
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ed: align output of read/write commands with POSIX-1.2008Sören Tempel2021-10-121-14/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | POSIX.1-2008 mandates the following regarding the write command: If the command is successful, the number of bytes written shall be written to standard output, unless the -s option was specified, in the following format: "%d\n", <number of bytes written> function old new delta readLines 447 409 -38 doCommands 1940 1889 -51 .rodata 104219 104163 -56 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-145) Total: -145 bytes Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * config system: move some options closer to relevalnt tool subdirectoriesDenys Vlasenko2021-10-126-131/+132
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: use more compact SHELL_ASH / HUSH config defines. no code changesDenys Vlasenko2021-10-122-11/+3
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: do not read user database for every prompt - only for those which need itDenys Vlasenko2021-10-111-27/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta get_user_strings - 52 +52 get_homedir_or_NULL - 23 +23 parse_and_put_prompt 823 838 +15 null_str 1 - -1 complete_cmd_dir_file 814 812 -2 deinit_S 51 42 -9 read_line_input 3059 3015 -44 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 1/3 up/down: 90/-56) Total: 34 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tar: prevent malicious archives with enormous long name sizes OOMing the machineDenys Vlasenko2021-10-111-3/+8
| | | | | | | | | | | | | | function old new delta get_header_tar 1707 1752 +45 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * whitespace fixDenys Vlasenko2021-10-111-1/+0
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * shell: fix script's comm field if ENABLE_FEATURE_PREFER_APPLETS=yDenys Vlasenko2021-10-117-2/+78
| | | | | | | | | | | | | | | | | | | | function old new delta re_execed_comm - 46 +46 main 72 86 +14 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/0 up/down: 60/0) Total: 60 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: code shrink curve25519Denys Vlasenko2021-10-111-15/+39
| | | | | | | | | | | | | | | | | | | | function old new delta fe_select 39 - -39 curve25519 849 800 -49 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-88) Total: -88 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: remove unused tls_symmetric.h (was used by old "big" AES code)Denys Vlasenko2021-10-112-512/+0
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * chrt: silence analyzer warningBernhard Reutner-Fischer2021-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | warning: use of uninitialized value ‘priority’ [CWE-457] [-Wanalyzer-use-of-uninitialized-value] chrt_main 499 496 -3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3) Total: -3 bytes text data bss dec hex filename 972157 4235 1840 978232 eed38 busybox_old 972154 4235 1840 978229 eed35 busybox_unstripped Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
| * find: code shrink -{m,a,c}{time,min}Denys Vlasenko2021-10-101-28/+33
| | | | | | | | | | | | | | | | | | | | | | function old new delta time_cmp - 181 +181 func_mmin 171 31 -140 func_mtime 180 34 -146 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/2 up/down: 181/-286) Total: -105 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * *: add more beneficial NOINLINEsDenys Vlasenko2021-10-103-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta dec_main - 1729 +1729 -41 bytes fallbackQSort3 - 671 +671 -70 bytes verify_sun - 481 +481 -107 bytes verify 1330 742 -588 fallbackSort 1469 728 -741 unpack_xz_stream 2306 536 -1770 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 0/3 up/down: 2881/-3099) Total: -218 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * *: add NOINLINEs where code noticeably shrinksDenys Vlasenko2021-10-108-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta display 85 1463 +1378 -73 bytes select_and_cluster - 1088 +1088 -139 bytes parse_reply - 979 +979 -109 bytes zbc_num_sqrt - 632 +632 -191 bytes show_bridge_port - 585 +585 -56 bytes sp_256_proj_point_add_8 - 576 +576 -45 bytes encode_then_append_var_plusminus - 554 +554 -118 bytes read_mode_db - 537 +537 -47 bytes fbset_main 1331 747 -584 sp_256_ecc_mulmod_8 1157 536 -621 brctl_main 2189 1548 -641 expand_one_var 2544 1872 -672 zxc_vm_process 6412 5589 -823 send_queries 1813 725 -1088 recv_and_process_peer_pkt 2245 1018 -1227 bb_dump_dump 1531 80 -1451 ------------------------------------------------------------------------------ (add/remove: 7/0 grow/shrink: 1/8 up/down: 6329/-7107) Total: -778 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * Make const ptr assign as function call in clangYU Jincheng2021-10-097-12/+38
| | | | | | | | | | | | | | | | - This can act as memory barrier in clang to avoid read before assign of a const ptr Signed-off-by: LoveSy <shana@zju.edu.cn> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * find: implement -amin, -atime, -cmin, and -ctimeIsmael Luceno2021-10-091-9/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta func_mtime 130 180 +50 func_mmin 121 171 +50 static.params 235 261 +26 parse_params 1435 1461 +26 packed_usage 34025 34033 +8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 5/0 up/down: 160/0) Total: 160 bytes Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hush: speed up ${x//\*/|} tooDenys Vlasenko2021-10-091-4/+9
| | | | | | | | | | | | | | function old new delta expand_one_var 2502 2544 +42 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ash: speed up ${x//\*/|} too, make it independent of ASH_OPTIMIZE_FOR_SIZEDenys Vlasenko2021-10-091-6/+12
| | | | | | | | | | | | | | function old new delta subevalvar 1503 1545 +42 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ash.c: speedup ${s:} substring (no quotes)Alin Mr2021-10-091-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | This trivial patch makes ${s:...} at least as fast as ${s#??..} in simple tests. It's probably faster for longer substrings, but then one wouldn't use ${s#"1024???s"} anyway - one would switch away from sh. function old new delta subevalvar 1457 1503 +46 Signed-off-by: Alin Mr <almr.oss@outlook.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: better coreutils compatibility for realpathRon Yorston2021-10-093-31/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add some tests which coreutils realpath pass but BusyBox realpath fails (bar one). Adjust xmalloc_realpath_coreutils() so the tests pass: - Expand symbolic links before testing whether the last path component exists. - When the link target is a relative path canonicalize it by passing it through xmalloc_realpath_coreutils() as already happens for absolute paths. - Ignore trailing slashes when finding the last path component and correctly handle the case where the only slash is at the start of the path. This requires ignoring superfluous leading slashes. - Undo all changes to the path so error messages from the caller show the original filename. function old new delta xmalloc_realpath_coreutils 214 313 +99 Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * xxd: fix -p -r, closes 13881Denys Vlasenko2021-10-082-13/+44
| | | | | | | | | | | | | | function old new delta xxd_main 893 890 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * resize: use tcgetattr(TCSAFLUSH) instead of TCSANOW, closes 13811Denys Vlasenko2021-10-081-1/+13
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * mktemp: add --tmpdir optionAndrej Valek2021-10-081-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make mktemp more compatible with coreutils. - add "--tmpdir" option - add long variants for "d,q,u" options Note: Upstream ca-certificate update script started using this option. function old new delta .rodata 104179 104219 +40 mktemp_main 186 194 +8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 48/0) Total: 48 bytes Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tar: improve comments, add FIXMEs. no code changesDenys Vlasenko2021-10-081-2/+3
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb.h: fix logic selecting incorrect BB_STRTOOFF for !LFS configsDenys Vlasenko2021-10-081-3/+7
| | | | | | | | | | | | BB_STRTOOFF() was equal to bb_strtou(). On x86_64, it's incorrect. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * httpd: if range is not specified, correctly fall back to read/write loopDenys Vlasenko2021-10-081-2/+5
| | | | | | | | | | | | | | | | | | | | | | range_start was staying -1, and comparison meant to detect "is it the first sendfile that failed, or not the first?" was making incorrect decision. The result: nothing is sent. function old new delta send_file_and_exit 865 877 +12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * help: s/Don't daemonize/Run in foreground/gDenys Vlasenko2021-10-083-3/+3
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * mdev: tweak --helpDenys Vlasenko2021-10-081-5/+5
| | | | | | | | | | | | | | function old new delta packed_usage 33993 34008 +15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * mount: "mount -o rw ...." should not fall back to RO mountDenys Vlasenko2021-10-081-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reported case was an attempt to remount,rw a CD-ROM: mount -o remount,rw /mnt/sr0 which "succeeded" by falling back to RO: mount("/dev/sr0", "/mnt/sr0", 0x412862, MS_REMOUNT|MS_SILENT|MS_RELATIME, "nojoliet,check=s,map=n,blocksize"...) = -1 EROFS (Read-only file system) ... mount("/dev/sr0", "/mnt/sr0", 0x412862, MS_RDONLY|MS_REMOUNT|MS_SILENT|MS_RELATIME, "nojoliet,check=s,map=n,blocksize"...) = 0 Clearly, not what was intended! function old new delta parse_mount_options 241 267 +26 mount_main 1198 1211 +13 singlemount 1301 1313 +12 inetd_main 1919 1911 -8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 3/1 up/down: 51/-8) Total: 43 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ip: added support for setting netns on devicesNicholas Niro2021-10-072-3/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta set_netns - 130 +130 do_iplink 1252 1315 +63 .rodata 104173 104179 +6 packed_usage 34020 33993 -27 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 2/1 up/down: 199/-27) Total: 172 bytes Signed-off-by: Nicholas Niro <blowfist@xroutine.net> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ps: fix -o pid=PID,args interpreting entire "PID,args" as headerDenys Vlasenko2021-10-071-14/+18
| | | | | | | | | | | | | | | | | | | | | | procps-ng 3.3.15 does not do this. (It could, allowing commas in headers and requiring "ps -opid=PID -oargs" form for this case, but it does not). function old new delta parse_o 167 190 +23 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * find: Unify time comparisonsIsmael Luceno2021-10-071-16/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Split the common part into a function, to be reused. The tail call is optimized, meaning now mmin/mtime just prepare arguments and jump into the common code, thus near zero overhead. This reduces code size slightly, e.g. on x86_64: text data bss dec hex filename 4806 0 0 4806 12c6 findutils/find.o.orig 4782 0 0 4782 12ae findutils/find.o Of course, the savings are even greater when implementing atime/ctime variants. Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * config: find: Fix mtime/mmin descriptionIsmael Luceno2021-10-071-2/+2
| | | | | | | | | | | | | | s/modified time/modification time/ Signed-off-by: Ismael Luceno <ismael@iodev.co.uk> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * *: generalize "const trick"YU Jincheng2021-10-076-38/+34
| | | | | | | | | | | | | | | | While at it, change all "__asm__" to "asm" Co-authored-by: canyie <31466456+canyie@users.noreply.github.com> Signed-off-by: YU Jincheng <shana@zju.edu.cn> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: whitespace fixDenys Vlasenko2021-10-061-3/+3
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: sp_256_sub_8_p256_mod always subtracts in-place, use thatDenys Vlasenko2021-10-061-63/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i386: function old new delta sp_256_mont_reduce_8 245 243 -2 sp_256_mont_dbl_8 26 24 -2 sp_256_ecc_mulmod_8 1161 1157 -4 sp_256_proj_point_dbl_8 359 353 -6 sp_256_sub_8_p256_mod 71 32 -39 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/5 up/down: 0/-53) Total: -53 bytes non-asm code: function old new delta sp_256_sub_8_p256_mod - 12 +12 sp_256_mont_reduce_8 250 243 -7 sp_256_mont_dbl_8 31 24 -7 sp_256_ecc_mulmod_8 1171 1157 -14 sp_256_proj_point_dbl_8 374 353 -21 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/4 up/down: 12/-49) Total: -37 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: x86-64 optimized sp_256_sub_8_p256_modDenys Vlasenko2021-10-061-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta sp_256_sub_8_p256_mod - 53 +53 sp_256_mont_reduce_8 223 217 -6 sp_256_mont_dbl_8 38 32 -6 sp_256_ecc_mulmod_8 1535 1529 -6 sp_256_proj_point_dbl_8 469 454 -15 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/4 up/down: 53/-33) Total: 20 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: x86-64 assemblyDenys Vlasenko2021-10-061-0/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta sp_256_mont_mul_8 127 155 +28 sp_256_proj_point_dbl_8 448 469 +21 sp_256_mont_sub_8 23 35 +12 sp_256_mont_dbl_8 26 38 +12 sp_256_sub_8 44 49 +5 sp_256_ecc_mulmod_8 1530 1535 +5 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 6/0 up/down: 83/0) Total: 83 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: tweak arm assembly (currently disabled)Denys Vlasenko2021-10-061-88/+89
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P@256: remove "header comment is kept intact" commentDenys Vlasenko2021-10-061-1/+0
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: do not dumplicate sp_256_sub_8()Denys Vlasenko2021-10-061-23/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta sp_256_proj_point_dbl_8 359 374 +15 sp_256_ecc_mulmod_8 1159 1171 +12 sp_256_mont_reduce_8 245 250 +5 sp_256_mont_dbl_8 26 31 +5 sp_256_sub_8_p256_mod 43 - -43 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 4/0 up/down: 37/-43) Total: -6 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: shrink sp_256_mul_add_8 a bit moreDenys Vlasenko2021-10-061-14/+24
| | | | | | | | | | | | | | function old new delta sp_256_mont_reduce_8 257 245 -12 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: P256: propagate constants, create dedicated "subtract p256_mod" functionDenys Vlasenko2021-10-061-32/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8 instances of this subtraction probably warrant a few bytes more of code. function old new delta sp_256_sub_8_p256_mod - 71 +71 sp_256_mont_sub_8 - 29 +29 sp_256_mont_dbl_8 - 26 +26 sp_256_mont_reduce_8 262 257 -5 sp_256_ecc_mulmod_8 1171 1161 -10 sp_256_proj_point_dbl_8 374 359 -15 static.sp_256_mont_sub_8 29 - -29 static.sp_256_mont_dbl_8 31 - -31 ------------------------------------------------------------------------------ (add/remove: 3/2 grow/shrink: 0/3 up/down: 126/-90) Total: 36 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>