aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* archival: support zstd in rpm and dpkgzstdRon Yorston2026-03-2411-20/+78
|
* tar: support zstd compressionRon Yorston2026-03-227-6/+70
| | | | | | | Use external utilities (not supplied!) to support zstd compression in tar. Adds 232-256 bytes.
* build system: add option to place statics in .bssRon Yorston2026-03-217-0/+19
| | | | | | | | | | | Upstream BusyBox uses the '-fdata-sections' compiler flag. On Windows this has the unfortunate side effect that static variables are placed in the .data section, thus increasing the size of the binary. Add a configuration option, STATICS_IN_BSS, to force statics into .bss on Windows, saving 2-5KB for most binaries. It has no effect on POSIX builds, where statics are always placed in .bss.
* win32: UTF8_OUTPUT: don't fail due to nwritten valueAvi Halachmi (:avih)2026-03-191-2/+4
| | | | | | | | | | | | | | | | | | | | | | | The "nwritten" argument and failure conditions were added in commit 208649d7b5, as it crashed on windows XP without it, and specifically because WriteConsoleW on XP expects this to be a non-NULL argument. However, writeCon_utf8 should not be called on XP - and indeed it's not since commit 234a3b97d3, because it produces incorrect output unless the UTF8 manifest is in effect - which never happens on XP. So it was called due to a bug, and it's not called on XP anymore. Nevertheless, it's possible that in the future we will support native Windows Unicode without the manifest - also on XP, and in such case writeCon_utf8 might get called on XP as well, so keep this argument. However the nwritten failure condition doesn't belong here. It's not needed on XP, and MS docs doesn't say that this value should tested in addition to the return value in order to determine failure, and theoretically there could be differences unrelated to failure. So ignore this value when determining failure. Return value is enough.
* win32: UTF8_OUTPUT: refine bad-sequence outputAvi Halachmi (:avih)2026-03-191-18/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, at writeCon_utf8, when we detected an invalid byte (for the current state), then we printed one '?' which also covered any following invalid bytes, until a valid byte for state 0 was detected. For instance printf '\377\377\377A' printed '?A' (3 bad bytes, 1 '?'). This was by design to avoid excessive '?' noise. However, other terminals (xterm), and specifically windows console (and terminal), print one '?' for any decoding error, and also reset the decoding state after every error. I.e. the same input would error 3 times, and display '???A'. Now we do the same, which also happens to simplify the code. The reference behavior is windows console/terminal in UTF-8 codepage (which writeCon_utf8 tries to emulate in other console codepages). To compare, do 'chcp 65001' to set the console to UTF-8 - which also bypasses writeCon_utf8, and check how the terminal displays some sequence. We should be the same, up to CONFIG_SUBST_WCHAR value. The "state" comment is updated since we no longer maintain bad state. While at it, refine also few nearby comments.
* Update default configurationsmergeRon Yorston2026-03-115-5/+15
|
* Merge branch 'busybox' into mergeRon Yorston2026-03-1152-1740/+6426
|\
| * ash: fix here strings causing segfault in function invocationbusyboxRon Yorston2026-03-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The size of the NFROMSTR struct wasn't initialised in the nodesize array, so we got: $ ./busybox sh $ f() { cat <<< hello; } $ f Segmentation fault (core dumped) ./busybox sh Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * paste: fix output when file lengths differRon Yorston2026-03-053-12/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If the files being pasted had different numbers of lines the output was incorrect. Rewrite the loop over all lines to allow for this. Add tests for such conditions. function old new delta paste_main 458 526 +68 Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ash: fix help builtin and tab completion of builtinsRon Yorston via busybox2026-02-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 56143ea63 (ash: code shrink: eliminate pstrcmp1()) changed the layout of struct builtincmd so the name member points to the start of the name, not the flag in the first element of the string. This broke the help builtin and tab completion of builtins. Remove the unnecessary '+ 1' in ash_command_name() and helpcmd(). ash_command_name 92 91 -1 helpcmd 106 102 -4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-5) Total: -5 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tar: only strip unsafe components from hardlinks, not symlinksRadoslav Kolev2026-02-281-1/+1
| | | | | | | | | | | | | | | | | | commit 3fb6b31c7 introduced a check for unsafe components in tar archive hardlinks, but it was being applied to symlinks too which broke "Symlinks and hardlinks coexist" tar test. Signed-off-by: Radoslav Kolev <radoslav.kolev@suse.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * less: unbreak EAGAIN propagationDenys Vlasenko2026-02-271-6/+12
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * less: make read error reporting actually visibleDenys Vlasenko2026-02-271-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | function old new delta m_status_print 252 275 +23 status_print 111 122 +11 read_lines 783 775 -8 .rodata 107141 107131 -10 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/2 up/down: 34/-18) Total: 16 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * less: improve O_NONBLOCK manipulations on stdinDenys Vlasenko2026-02-271-32/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | "less FILE" case needs it to be set just once. In other cases, manipulate it less often. function old new delta read_lines 702 783 +81 reinitialize 198 199 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 82/0) Total: 82 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * less: do not retry reads of stdin if got EAGAINDenys Vlasenko2026-02-271-35/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also: fewer syscalls to set/clear O_NONBLOCK, skip trying to read keyboard if poll() told us it's not ready. function old new delta reinitialize 184 198 +14 getch_nowait 251 258 +7 sched_yield 25 - -25 read_lines 815 702 -113 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 2/1 up/down: 21/-138) Total: -117 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * *: don't use getservbyname, it links in a static bufferDenys Vlasenko2026-02-255-37/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta bb_get_servport_by_name - 348 +348 bb_lookup_port 83 111 +28 reread_config_file 886 907 +21 static.se 16 - -16 getservbyname 53 - -53 getservbyname_r 284 - -284 ------------------------------------------------------------------------------ (add/remove: 2/5 grow/shrink: 2/0 up/down: 397/-353) Total: 44 bytes text data bss dec hex filename 1080084 555 5024 1085663 1090df busybox_old 1080144 555 4992 1085691 1090fb busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnet: fix false positive "Error writing to foreign host"Denys Vlasenko2026-02-241-28/+34
| | | | | | | | | | | | | | function old new delta write_to_net 620 625 +5 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * netstat: fix breakage due to last commitDenys Vlasenko2026-02-243-9/+19
| | | | | | | | | | | | | | | | | | | | function old new delta bb_get_servname_by_port 182 195 +13 ip_port_str 121 120 -1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 13/-1) Total: 12 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * netstat,pscan: don't use getservbyport(), it links in a static bufferDenys Vlasenko2026-02-244-10/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta bb_get_servname_by_port - 182 +182 ip_port_str 112 121 +9 pscan_main 594 591 -3 getservbyport 53 - -53 getservbyport_r 430 - -430 ------------------------------------------------------------------------------ (add/remove: 2/4 grow/shrink: 1/1 up/down: 191/-486) Total: -295 bytes text data bss dec hex filename 1080362 555 5056 1085973 109215 busybox_old 1080067 555 5024 1085646 1090ce busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnet: fixes after testing against some MUD serversDenys Vlasenko2026-02-241-112/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few size tests were not tight enough. More importantly, the logic "is this a telnet server?" made more robust. TTYPE seems to be understood by the MUD server I tried, for some reason NAWS is not? function old new delta packed_usage 36040 36078 +38 write_to_net 598 620 +22 telnet_main 455 462 +7 handle_SIGWINCH 15 21 +6 read_from_net 534 539 +5 show_menu 212 203 -9 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 5/1 up/down: 78/-9) Total: 69 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnetd: if vfork in make_new_session() fails, do close socket.Denys Vlasenko2026-02-242-46/+84
| | | | | | | | | | | | | | | | | | | | | | function old new delta telnetd_main 372 385 +13 make_new_session 550 552 +2 xgetpty 81 78 -3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/1 up/down: 15/-3) Total: 12 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnet: code shrinkDenys Vlasenko2026-02-231-21/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta write_to_stdout 105 113 +8 put_iac 28 35 +7 write_to_net 596 598 +2 read_from_stdin 227 229 +2 read_from_net 543 534 -9 telnet_main 476 455 -21 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/2 up/down: 19/-30) Total: -11 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnet: rewrite to use ioloop()Denys Vlasenko2026-02-234-440/+1393
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now should never block on network I/O. Also, window resizing is dynamic now. function old new delta write_to_net - 596 +596 read_from_net - 543 +543 read_from_stdin - 227 +227 show_menu - 212 +212 write_to_stdout - 105 +105 have_data_to_write_to_net - 72 +72 have_data_to_write_to_stdout - 38 +38 put_iac_byte_escaped - 32 +32 ioloop_run 411 438 +27 have_buffer_to_read_from_stdin - 25 +25 have_buffer_to_read_from_net - 25 +25 .rodata 107125 107141 +16 handle_SIGWINCH - 15 +15 put_iac 36 28 -8 put_iac4_msb_lsb 19 - -19 iac_flush 36 - -36 setConMode 87 - -87 handle_net_output 110 - -110 con_escape 271 - -271 telnet_main 1232 476 -756 ------------------------------------------------------------------------------ (add/remove: 11/5 grow/shrink: 2/2 up/down: 1933/-1287) Total: 646 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnetd: do not send stray \r\n before /etc/issue.netDenys Vlasenko2026-02-232-3/+3
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnetd: do not wait for more input after 10-byte NAWS is receivedDenys Vlasenko2026-02-221-28/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If the the screen is resized to 255 columns without any subsequent data received, the server won't parse and react to the NAWS (until eventually at least one more byte arrives). function old new delta read_byte_unescaping_IAC 28 31 +3 net_to_pty__have_data_to_write 551 552 +1 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 4/0) Total: 4 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnetd: fix handshake: had one wrong, but harmless elementDenys Vlasenko2026-02-222-7/+15
| | | | | | | | | | | | | | function old new delta static.iacs_to_send 12 9 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnetd: correct handling of screen sizes with any dimension equal to 255Denys Vlasenko2026-02-221-23/+52
| | | | | | | | | | | | | | | | | | | | | | | | IOW: teach NAWS parser how to IAC-unescape. function old new delta net_to_pty__have_data_to_write 429 551 +122 read_byte_unescaping_IAC - 28 +28 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/0 up/down: 150/0) Total: 150 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * telnetd: do close pty when network read returns EOF; try to cause EOF-on-readDenys Vlasenko2026-02-221-36/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta fabricate_ctrl_D_on_pty - 65 +65 net_to_pty__have_data_to_write 368 429 +61 .rodata 107096 107125 +29 telnetd_main 367 372 +5 net_to_pty__have_buffer_to_read_into 164 162 -2 packed_usage 36066 36040 -26 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 3/2 up/down: 160/-28) Total: 132 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: add generic "fd polling and I/O" loop, use it in telnetdDenys Vlasenko2026-02-215-571/+2623
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We do it, badly, in many places. Better to use one robust implementation. Can be buggy yet. Initial use is in a rather old, rarely used tech: telnet. The I/O in telnetd should be fully non-blocking now, including pty delays handling. Several bugs in telnetd handling of IACs are fixed. function old new delta ioloop_run - 411 +411 net_to_pty__have_data_to_write - 368 +368 pty_to_net__write - 318 +318 net_to_pty__write - 180 +180 pty_to_net__read - 171 +171 net_to_pty__have_buffer_to_read_into - 164 +164 pty_to_net__have_buffer_to_read_into - 90 +90 net_to_pty__read - 87 +87 pty_to_net__have_data_to_write - 59 +59 make_new_session 491 550 +59 conn_close_fds - 52 +52 accept_conn__accept - 49 +49 conn_close_fds_remove_and_free - 27 +27 ioloop_remove_conn - 22 +22 remove_and_free_to_pty - 19 +19 ioloop_insert_conn - 10 +10 accept_conn__can_accept - 6 +6 accept_conn__return_zero - 3 +3 static.ayt_response - 2 +2 handle_sigchld 59 61 +2 free_session 130 - -130 telnetd_main 1797 367 -1430 ------------------------------------------------------------------------------ (add/remove: 19/1 grow/shrink: 2/1 up/down: 2099/-1560) Total: 539 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: code shrinkDenys Vlasenko2026-02-211-14/+13
| | | | | | | | | | | | | | function old new delta tls_handshake_as_server 2408 2400 -8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: server: fix incorrect key_block assignments - now works against openssl ↵Denys Vlasenko2026-02-155-91/+241
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | s_client function old new delta privRsaEncryptSignedElement - 236 +236 tls_handshake_as_server 2033 2264 +231 .rodata 108079 108301 +222 initialize_aes_keys - 77 +77 xwrite_encrypted 507 506 -1 tls_handshake 1519 1500 -19 derive_master_secret_and_keys 154 123 -31 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 2/3 up/down: 766/-51) Total: 715 bytes Totoal growth compared to code before TLS server code: function old new delta tls_handshake_as_server - 2264 +2264 .rodata 107074 108301 +1227 psRsaCrypt - 577 +577 load_rsa_priv_key - 282 +282 ssl_server_main - 279 +279 privRsaEncryptSignedElement - 236 +236 ssl_client_main 137 363 +226 psRsaDecryptPriv - 171 +171 set_cipher_parameters - 161 +161 derive_master_secret_and_keys - 123 +123 packed_usage 36034 36146 +112 sp_ecc_make_key_256 - 103 +103 send_finished - 94 +94 get_change_cipher_spec - 88 +88 initialize_aes_keys - 77 +77 static.BLOCK_NAMES - 70 +70 curve_P256_compute_premaster - 65 +65 der_binary_to_pstm - 50 +50 curve_x25519_generate_keypair - 44 +44 get_finished - 42 +42 get_outbuf_fill_handshake_record - 37 +37 client_hello_ciphers - 32 +32 curve_P256_generate_keypair - 27 +27 sp_256_from_bin_8 - 26 +26 tls_xread_record 681 704 +23 curve_x25519_compute_premaster - 15 +15 applet_names 2870 2881 +11 applet_main 1652 1656 +4 xwrite_encrypted 507 506 -1 xwrite_and_update_handshake_hash 76 59 -17 sp_256_point_from_bin2x32 70 43 -27 curve_x25519_compute_pubkey_and_premaster 71 39 -32 curve_P256_compute_pubkey_and_premaster 167 65 -102 psRsaEncryptPub 395 199 -196 tls_handshake 2069 1500 -569 ------------------------------------------------------------------------------ (add/remove: 23/0 grow/shrink: 6/7 up/down: 6466/-944) Total: 5522 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: make ECDHE_RSA work against our client (openssl s_client not yet)Denys Vlasenko2026-02-154-67/+320
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta tls_handshake_as_server 1601 2033 +432 sp_ecc_make_key_256 - 103 +103 curve_P256_compute_premaster - 65 +65 .rodata 108023 108079 +56 curve_x25519_generate_keypair - 44 +44 tls_get_zeroed_outbuf - 28 +28 curve_P256_generate_keypair - 27 +27 sp_256_from_bin_8 - 26 +26 curve_x25519_compute_premaster - 15 +15 tls_xread_record 708 704 -4 tls_handshake 1530 1519 -11 get_outbuf_fill_handshake_record 51 37 -14 sp_256_point_from_bin2x32 70 43 -27 curve_x25519_compute_pubkey_and_premaster 71 39 -32 curve_P256_compute_pubkey_and_premaster 167 65 -102 ------------------------------------------------------------------------------ (add/remove: 7/0 grow/shrink: 2/6 up/down: 796/-190) Total: 606 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: remove unnecessary malloc/free in psRsaDecryptPriv()Denys Vlasenko2026-02-151-22/+10
| | | | | | | | | | | | | | | | | | | | function old new delta .rodata 108007 108023 +16 psRsaDecryptPriv 200 171 -29 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 16/-29) Total: -13 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: fix cipher-id selection in server modeDenys Vlasenko2026-02-153-221/+430
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ECDSA keys still don't work, and currently will be ignored function old new delta tls_handshake_as_server 824 1601 +777 .rodata 107764 108007 +243 set_cipher_parameters - 161 +161 packed_usage 36072 36146 +74 static.BLOCK_NAMES - 70 +70 client_hello_ciphers - 32 +32 ssl_server_main 288 279 -9 load_rsa_priv_key 329 282 -47 tls_handshake 1676 1530 -146 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 3/3 up/down: 1357/-202) Total: 1155 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: eliminate unnecessary ENCRYPT_ON_WRITE, merge tls_get_zeroed_outbuf() ↵Denys Vlasenko2026-02-151-37/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | with fill_handshake_record_hdr() function old new delta get_outbuf_fill_handshake_record - 51 +51 send_finished 95 94 -1 tls_handshake 1690 1676 -14 xwrite_and_update_handshake_hash 76 59 -17 tls_handshake_as_server 852 824 -28 tls_get_zeroed_outbuf 28 - -28 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 0/4 up/down: 51/-88) Total: -37 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: fix up debug printouts wrt newlinesDenys Vlasenko2026-02-151-88/+90
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: implement server codeDenys Vlasenko2026-02-155-129/+660
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta tls_handshake_as_server 7 852 +845 .rodata 107103 107764 +661 psRsaCrypt - 577 +577 load_rsa_priv_key - 329 +329 psRsaDecryptPriv - 200 +200 derive_master_secret_and_keys - 154 +154 send_finished - 95 +95 get_change_cipher_spec - 88 +88 der_binary_to_pstm - 50 +50 get_finished - 42 +42 tls_xread_record 681 708 +27 ssl_server_main 285 288 +3 psRsaEncryptPub 395 199 -196 tls_handshake 2069 1690 -379 ------------------------------------------------------------------------------ (add/remove: 8/0 grow/shrink: 4/2 up/down: 3071/-575) Total: 2496 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ssl_server: new applet, not functional yetDenys Vlasenko2026-02-154-17/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta ssl_server_main - 285 +285 ssl_client_main 137 363 +226 packed_usage 36034 36072 +38 .rodata 107074 107103 +29 applet_names 2870 2881 +11 tls_handshake_as_server - 7 +7 applet_main 1652 1656 +4 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 5/0 up/down: 600/0) Total: 600 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: better comments in read_key()Denys Vlasenko2026-02-151-37/+38
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * *: placate warnings where strchr/strstr returns constant pointerDenys Vlasenko2026-02-1522-51/+58
| | | | | | | | | | | | | | | | | | Newer glibc is now smarter and can propagate const-ness from those! function old new delta readtoken1 3111 3108 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * fdisk: implement -t PARTTYPEDenys Vlasenko2026-02-152-11/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows to operate on MBR even if disk also has GPT. function old new delta .rodata 107019 107074 +55 packed_usage 36009 36034 +25 get_boot 1513 1532 +19 fdisk_main 4618 4622 +4 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 103/0) Total: 103 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | ash: fix here strings causing segfault in subshellsRon Yorston2026-03-041-0/+3
| | | | | | | | | | | | | | | | A here string in a subshell or function invocation caused a SEGV. This was due to an upstream bug: the size of the NFROMSTR struct wasn't initialised in the nodesize array. (GitHub issue #567)
* | ash: allow execution of busybox-w32 binary without extensionRon Yorston2026-02-253-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the busybox-w32 binary didn't have an extension the shell was unable to spawn itself: $ ls -l busybox -rwxrwxr-x 1 rmy rmy 661006 Feb 25 09:37 busybox $ ./busybox sh $ ls sh: unable to spawn shell This happened because the shell used spawnve() from the C runtime to execute itself. Microsoft insists on trying to add an extension to the name of the binary unless it has an explicit '.' as its last character. Use the internal spawnveq() instead, as it handles various quirks like the above. Adds 16-32 bytes. (GitHub issue #566)
* | ash: fix execution of applets via Unix-style pathRon Yorston2026-02-141-18/+15
| | | | | | | | | | | | | | | | | | Merging of upstream changes to ash failed to ensure that applets could be executed using a Unix-style path. Move the necessary code from shellexec() to tryexec(). (GitHub issue #565)
* | Merge branch 'busybox' into mergeRon Yorston2026-02-1234-238/+319
|\|
| * main: !CONFIG_BUSYBOX: "busybox --OPT" is not a call to applet "-OPT"Denys Vlasenko2026-02-081-1/+4
| | | | | | | | | | | | | | | | | | This was confusing: $ busybox --help -help: applet not found Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * *: whitespace cleanupDenys Vlasenko2026-02-087-8/+0
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * tls: document PSTM_64BIT + PSTM_X86_64 optimizations betterDenys Vlasenko2026-02-082-11/+11
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * vi: code shrinkDenys Vlasenko2026-02-071-7/+9
| | | | | | | | | | | | | | | | | | | | | | function old new delta .rodata 107007 107019 +12 run_cmds 62 50 -12 indicate_error 78 55 -23 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 12/-35) Total: -23 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * vi: fix last commit - do terminate the :CMD on the first whitespaceDenys Vlasenko2026-02-071-0/+1
| | | | | | | | | | | | | | function old new delta colon 3942 3952 +10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>