Download APK File V1.31.1
I want to thank the following companies which are providing support for the BusyBox project: Analog Devices, Inc. provided a Blackfin development board free of charge. Blackfin is a NOMMU processor, and its availability for testing is invaluable. If you are an embedded device developer, please note that Analog Devices has an entire Linux distribution available for download for this board. Visit for more information.
Download APK File v1.31.1
Changes since previous release:Aaro Koskinen: devmem: add 128-bit widthBernhard Reutner-Fischer (3): kbuild: fix building sha256 kbuild: Prefer -Oz over -Os seedrng: manually inline seed_rngBrandon Maier: xxd: fix typo in trivial usageDario Binacchi (2): fbset: abort on not handled options fbset: support setting pixel clock rateDavid Leonard: tsort: new appletDenys Vlasenko: Makefile.flags: add resolv to LDLIBS for linux compilers too (not only gnu ones) build system: detect if build host has no bzip2 scripts/echo.c: fix NUL handling in "abc\0 def" libbb/loop: fix compile failure (name collision) libbb/loop: optionally use ioctl(LOOP_CONFIGURE) to set up loopdevs libbb/loop: restore the correct return value of set_loop() libbb/sha1: add config-selectable fully unrolled version, closes 14391 libbb/sha1: add config-selectable partially unrolled version libbb/sha1: assembly versions for x86 libbb/sha1: optional x86 hardware accelerated hashing libbb/sha256: optional x86 hardware accelerated hashing libbb: change xstrndup, xmemdup to take size_t as size parameter libbb: factor out fflush_stdout_and_exit(EXIT_SUCCESS) libbb: fflush_stdout_and_exit(0) still exits with _error_ (not 0!) if fflush fails libbb: fix fallout from nth_string() robustification, closes 14726 libbb: introduce and use chdir_or_warn() libbb: invert the meaning of SETUP_ENV_NO_CHDIR -> SETUP_ENV_CHDIR tls: P256: remove NOP macro sp_256_norm_8() tls: include signature_algorithms extension in client hello message examples/var_service/dhcp_if: make helper scripts more talkative testsuite/mount.tests: accomodate umount failure seen on 5.18.0 testsuite/sha1sum.tests: fix false positive failure shell: add comments about SIGINT-related problems shell: fix compile failures in some configs ash,hush: fix handling of SIGINT while waiting for interactive input ash: ^C with SIG_INGed SIGINT should not exit the shell ash: do not truncate failed tilde expansion on unknown user names ash: fix ifs cleanup on error paths ash: fix unsafe use of mempcpy ash: fix use-after-free in pattern substitution code awk: input numbers are never octal or hex (only program consts can be) bc: hopefully fix bug 14956 (use-after-free) cut: build fix for FEATURE_CUT_REGEX ifplugd: split -a into -a and -A, latter disables upping in iface creation init: do not set HOME ls: implement ls -sh (human-readable allocated blocks) md5/shaXsum: use FEATURE_COPYBUF_KB to size the buffer instead of fixed 4k mv: fix error in !VERBOSE configs nmeter: %[md] %[mw] - dirty file-backed pages, writeback pages powertop: fix cpuid asm: ebx saving/restoring is properly done by gcc sed: correctly handle 'w FILE' commands writing to the same file sed: fix double-free in FEATURE_CLEAN_UP=y configs sed: fix handling of escaped delimiters in s/// replacement sed: fix handling of escaped delimiters in s/// search pattern, closes 14541 seedrng: chdir to the SEED_DIRECTORY - avoid concat_path_file's seedrng: do not hash in a constant string, it's not adding entropy seedrng: do not hash lengths, they are very predictable seedrng: do not try to continue on unexpected errors (just exit) seedrng: explain why we need locking and fsync'ing seedrng: include file/dir names in error messages seedrng: re-add fsync after unlink, and explain its purpose seedrng: reduce MAX_SEED_LEN from 512 to 256 seedrng: remove redundant assignment seedrng: remove unnecessary zero-filling of local variables seedrng: restore error check on fsync seedrng: simplify read_new_seed() to not have error return seedrng: use more xfuncs where appropriate shaNNNsum: accept one-space "HASH FILENAME" format for -c, closes 14866 sort: fix -k2M (wasn't skipping leading whitespace) sort: fix -s -r interaction: 'stable' order is not affected by -r sort: fix sort -s -u, closes 14871 sort: support -h sulogin: increase util-linux compatibility sulogin: start _login_ shell only with -p sulogin: util-linux does not say "normal startup" on Ctrl-D taskset: fix printf format mismatch in !FEATURE_TASKSET_FANCY config. closes 14616 top: fix display of large PID/PPID top: improve large PID display in memory ('s') mode tree: make it unicode-aware tree: unicode tweak (use normal space char, 0x20) udhcpc6: add missed big-endian conversions udhcpc6: align FF02__1_2[] udhcpc6: downgrade "opening listen socket" log level to 2 udhcpc6: fix binding to network aliases udhcpc6: fix sending of renew messages udhcpc6: use a different default config script xargs: implement -o, closes 15146 xxd -r: handle offsets xxd -r: without -p, stop at more than one whitespace, closes 14786 xxd: fix use of non-initialized data xxd: use bb_simple_perror_msg... where appropriateEmanuele Giacomelli: XXXsum: handle binary sums with " " in the pathGrob Grobmann: vi: add 'ZQ' quitting commandHenrique Rodrigues: ping: fix typo in --help textJason A. Donenfeld (10): seedrng: import SeedRNG utility for kernel RNG seed files seedrng: use libbb functions seedrng: hoist bb_strtoul out of min/max seedrng: remove some global variables seedrng: further reduce size seedrng: use predefined strings where possible seedrng: avoid needless runtime strlen() call seedrng: compress format strings with %s arguments seedrng: code-golf even smaller seedrng: prune header includesKhem Raj: apply const trick to ptr_to_globalsLouis Sautier: pkill: add -e to display the name and PID of the process being killedLudwig Nussel: libbb: mark stack in assembly files read-onlyNatanael Copa (2): awk: fix use after free (CVE-2022-30065) more: accept and ignore -ePaul Fox: crond: implement support for setting PATH in crontab filesPeter Kaestle: unzip -l: add missed big-endian conversions date and timeRoger Knecht: tree: new appletRon Yorston (8): libbb: restore special handling of nomsg errors libbb: make '--help' handling more consistent lineedit: get PWD from ash ash,hush: use HOME for tab completion and prompts vi: fix regression in autoindent handling vi: handle autoindent in 'cc' command vi: improved handling of backspace in replace mode vi: fix backspace over tab in commandsSamuel Thibault: Fix non-Linux buildsShawn Landden: ash: optional sleep builtinSören Tempel (3): ed: add support for -s command-line option as mandated by POSIX ash: don't read past end of var in subvareval for bash substitutions ash: fix use-after-free in bash pattern substitutionTimo Teräs: mkfs.vfat: fix volume label to be padded with spaceVincent Stehlé: fdisk: recognize EBBR protective partitionsWalter Lozano: Add support for long options to cmpXiaoming Ni (4): loop: fix a race when a free loop device is snatched loop: refactor: extract subfunction get_next_free_loop() loop: simplify code of LOOP_SET_FD failure loop: refactor: extract subfunction set_loopdev_params()
Changes since previous release:Aaro Koskinen: find: implement -samefileAlin Mr: ash.c: speedup $s: substring (no quotes)Andrej Valek: mktemp: add --tmpdir optionAriadne Conill: cpio: add support for --ignore-devno like GNU cpio cpio: add support for --renumber-inodes like GNU cpioBernhard Reutner-Fischer: chrt: silence analyzer warning libarchive: remove duplicate forward declarationDaniel Thau: awk: fix printf %%Denys Vlasenko: config system: move some options closer to relevalnt tool subdirectories libbb.h: fix logic selecting incorrect BB_STRTOOFF for !LFS configs libbb/lineedit: do not escape %^=+}]:, escape ? in tab completion libbb: clarify what bb_mode_string() generates libbb: code shrink bb_parse_mode libbb: code shrink in des encryption, in setup_salt() libbb: code shrink in main() and scripted_main() libbb: eliminate a static data array in bb_mode_string() libbb: make bb_lookup_port() abort on bad port names libbb: reuse "bad port" error message string shell/ash_test/run-all: unset locale/language variables shell: do not read user database for every prompt - only for those which need it shell: enable more tests which are passing now shell: fix arithmentic evaluation of "++7" and such (it is + + 7, i.e. 7) shell: fix parsing of $(( (v)++ + NUM )) shell: fix script's comm field if ENABLE_FEATURE_PREFER_APPLETS=y shell: use more compact SHELL_ASH / HUSH config defines. no code changes ash: LINENO starts from 0 in -c SCRIPT mode ash: eval: Check nflag in evaltree instead of cmdloop ash: eval: Do not cache value of eflag in evaltree ash: eval: Prevent recursive PS4 expansion ash: fix LINENO in functions ash: fix compile breakage in !ENABLE_ASH_ALIAS config ash: introduce bash-like $FUNCNAME ash: parser: Fix alias expansion after heredoc or newlines ash: parser: Fix handling of empty aliases ash: parser: Get rid of PEOA ash: parser: Save and restore heredoclist in expandstr ash: speed up $ too, make it independent of ASH_OPTIMIZE_FOR_SIZE ash: support testsuite for !FEATURE_SUID_CONFIG_QUIET configs ash: use pgetc_eatbnl() in more places, take 3 hush: fix set -n to act immediately, not just after run_list() hush: fix var_LINENO3.tests failure hush: speed up $ too awk: code shrink: avoid duplicate NUL checks and strlen() awk: never return NULL from awk_printf() basename: implement -a and -s SUFFIX blkdiscard: accept -f (force) as no-op bzip: make ftab[] and crc32table[] member arrays of EState, do not allocate chat: hopefully fix infinite spinning on input EOF chmod: correctly report changed modes df: "support" -H as an alias of -h dhcprelay: change two more variables to unsigned find: code shrink -m,a,ctime,min httpd: do not send Last-Modified / ETag / Content-Length for error pages httpd: fix config deps httpd: if range is not specified, correctly fall back to read/write loop httpd: fix compile failure if !FEATURE_HTTPD_RANGES mount: "mount -o rw ...." should not fall back to RO mount mount: with -w, do not fall back to read-only mounts ps: fix -o pid=PID,args interpreting entire "PID,args" as header resize: use tcgetattr(TCSAFLUSH) instead of TCSANOW, closes 13811 shuf: in -i RANGE, accept numbers up to width of pointers shuf: make -i 99999999990-100000000000 work even on 32 bits shuf: with -i LOW-HIGH, do not allow any argv's tar,smemcap: commonalyze checksumming code for tar header tar: prevent malicious archives with enormous long name sizes OOMing the machine tls: "server cert is not RSA" is a fatal error tls: replace "26-bit" P256 code with 32-bit one tls: x25519: code shrink by factoring out common code udhcp: fix build breakage on MIPS udhcpc6: fix udhcp_find_option to actually find DHCP6 options udhcpd: check config file for bad IP ranges (start > end) uudecode: special-case "/dev/stdout", closes 14241 xxd: fix -p -r, closes 13881Dominique Martinet: sed: do not ignore 'g' modifier when match starts with ^Ildar Shaimordanov: wget: allow end-users to customize Content-Type for --post-data and --post-fileIsmael Luceno: less: Ignore -X config: find: Fix mtime/mmin description find: Unify time comparisons find: implement -amin, -atime, -cmin, and -ctimeMartin Kaiser: Makefile.flags: use all cflags for crypt and rt checksMatthew Slowe: timeout: add support for "timeout -k KILL_SECS"Nicholas Niro: ip: added support for setting netns on devicesPeter Korsgaard: libarchive/get_header_ar.c: fix extraction of archives from binutils in deterministic modeRoberto A. Foglietta: ash: add bash-like ERR trap and set -ERon Yorston: libbb: better coreutils compatibility for realpath libbb: code shrink parse_datestr libbb: ensure mode_string is NUL terminated ash: fix ignoreeof option ash: let ignoreeof only affect interactive shells ash: regressions in process substitution ash: stopped jobs should only prevent exit from interactive shell awk: fix read beyond end of buffer cal: implement -m date,touch: allow timezone offsets in dates getopt: code shrink printf: allow 0 as a flag and allow multiple flags rev: correct output for long input lines shuf: speed-up when limited output is requested tar,smemcap: silence compiler warning vi: changes to handling of -c and EXINIT vi: code shrink print_literal() vi: don't right shift empty lines vi: further changes to colon addresses vi: searches in colon commands should wrap vi: support /.exrc wget: implement --post-fileSergey Ponomarev: httpd,telnetd: make default port configurableSören Tempel: ed: align output of read/write commands with POSIX-1.2008 ed: add support for -p command-line option as mandated by POSIX ed: fix current line number for file passed via the command-line ed: align output of read command with POSIX.1-2008Walter Lozano: cmp: add support for -nYU Jincheng: *: generalize "const trick" Make const ptr assign as function call in clang 041b061a72