From bugzilla at busybox.net Sat Nov 4 08:15:07 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Sat, 04 Nov 2023 08:15:07 +0000 Subject: [Bug 15841] New: busybox - Memory leaks in TAR Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15841 Bug ID: 15841 Summary: busybox - Memory leaks in TAR Product: Busybox Version: unspecified Hardware: PC OS: Linux Status: NEW Severity: major Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: andres at antai-group.com CC: busybox-cvs at busybox.net Target Milestone: --- Created attachment 9652 --> https://bugs.busybox.net/attachment.cgi?id=9652&action=edit Busybox Memory Leaks A memory corruption issue exists in BusyBox through version v1.37 in which malcrafted tar file headers trigger a left shift operation of negative value at getOctal() in get_header_tar.c. As a result, and depending on the input, memory leaks and/or crashes occur. VALGRIND OUTPUT valgrind --leak-check=full ./busybox tar -xvf input.tar -O ... ==926823== 256 (184 direct, 72 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 2 ==926823== at 0x48407B4: malloc (vg_replace_malloc.c:381) ==926823== by 0x1196F2: xmalloc (in /home/andres/misc/framework/repos/busybox.old/busybox.full) ==926823== by 0xB7: ??? ==926823== by 0x119726: xzalloc (in /home/andres/misc/framework/repos/busybox.old/busybox.full) ==926823== ASAN OUPUT archival/libarchive/get_header_tar.c:58:9: runtime error: left shift of negative value -1 ================================================================= ==2240392==ERROR: LeakSanitizer: detected memory leaks Direct leak of 184 byte(s) in 1 object(s) allocated from: #0 0x7ffff78d85bf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555555c103e3 (/home/andres/misc/framework/repos/busybox/busybox+0x6bc3e3) (BuildId: a68871b52750d3e6001195b071395ec9ad84ec1f) Indirect leak of 72 byte(s) in 1 object(s) allocated from: #0 0x7ffff78d85bf in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69 #1 0x555555c103e3 (/home/andres/misc/framework/repos/busybox/busybox+0x6bc3e3) (BuildId: a68871b52750d3e6001195b071395ec9ad84ec1f) SUMMARY: AddressSanitizer: 256 byte(s) leaked in 2 allocation(s). IMPACT: Availability is impacted. Further exploitation has not been confirmed. PoC [See attached file] https://github.com/CarlosAndresRamirez/PoCs/blob/main/busybox-v1.37_2023-11-04/busybox-tar-PoC-01.tar --- Carlos Andres Ramirez Security Engineer https://carlos.engineer/ -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Sun Nov 5 00:50:20 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Sun, 05 Nov 2023 00:50:20 +0000 Subject: [Bug 15844] New: mount does not fully/properly read /proc/mounts Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15844 Bug ID: 15844 Summary: mount does not fully/properly read /proc/mounts Product: Busybox Version: unspecified Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: wuerfel-wahlzettel.02 at icloud.com CC: busybox-cvs at busybox.net Target Milestone: --- I think mount does not fully read /proc/mounts to find the device given a mount point. This is needed for remounting. It seems like mount only reads the first 1024 bytes of /proc/mounts. Maybe it aborts the reading process for some reason. I do not know for sure. See below a strace and below the actual file. /opt/timemachine # strace -e read=0,1,2,3,4 mount -o remount,rw /opt/timemachine execve("/bin/mount", ["mount", "-o", "remount,rw", "/opt/timemachine"], 0x7ffd6226e058 /* 10 vars */) = 0 arch_prctl(ARCH_SET_FS, 0x7f0147493b48) = 0 set_tid_address(0x7f0147493fb8) = 584 brk(NULL) = 0x5643f83c5000 brk(0x5643f83c7000) = 0x5643f83c7000 mmap(0x5643f83c5000, 4096, PROT_NONE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x5643f83c5000 mprotect(0x7f0147490000, 4096, PROT_READ) = 0 mprotect(0x5643f7e01000, 16384, PROT_READ) = 0 getuid() = 0 getuid() = 0 geteuid() = 0 open("/proc/mounts", O_RDONLY|O_LARGEFILE) = 3 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f01473f9000 read(3, "overlay / overlay rw,relatime,lo"..., 1024) = 1024 | 00000 6f 76 65 72 6c 61 79 20 2f 20 6f 76 65 72 6c 61 overlay / overla | | 00010 79 20 72 77 2c 72 65 6c 61 74 69 6d 65 2c 6c 6f y rw,relatime,lo | | 00020 77 65 72 64 69 72 3d 2f 76 61 72 2f 6c 69 62 2f werdir=/var/lib/ | | 00030 64 6f 63 6b 65 72 2f 6f 76 65 72 6c 61 79 32 2f docker/overlay2/ | | 00040 6c 2f 55 32 55 58 43 54 33 43 58 48 4a 45 47 43 l/U2UXCT3CXHJEGC | | 00050 4e 49 36 52 33 56 59 37 46 54 54 51 3a 2f 76 61 NI6R3VY7FTTQ:/va | | 00060 72 2f 6c 69 62 2f 64 6f 63 6b 65 72 2f 6f 76 65 r/lib/docker/ove | | 00070 72 6c 61 79 32 2f 6c 2f 45 35 4d 50 54 35 44 45 rlay2/l/E5MPT5DE | | 00080 56 4c 4b 57 44 59 35 4a 32 55 44 42 44 54 48 32 VLKWDY5J2UDBDTH2 | | 00090 56 50 3a 2f 76 61 72 2f 6c 69 62 2f 64 6f 63 6b VP:/var/lib/dock | | 000a0 65 72 2f 6f 76 65 72 6c 61 79 32 2f 6c 2f 42 4b er/overlay2/l/BK | | 000b0 54 34 52 36 52 4c 55 32 4a 4f 5a 45 32 4a 42 59 T4R6RLU2JOZE2JBY | | 000c0 35 58 55 5a 53 52 5a 45 3a 2f 76 61 72 2f 6c 69 5XUZSRZE:/var/li | | 000d0 62 2f 64 6f 63 6b 65 72 2f 6f 76 65 72 6c 61 79 b/docker/overlay | | 000e0 32 2f 6c 2f 4a 59 42 45 33 4d 51 58 4e 4f 4c 42 2/l/JYBE3MQXNOLB | | 000f0 4a 5a 46 47 32 48 56 4f 4c 36 53 4e 58 4e 3a 2f JZFG2HVOL6SNXN:/ | | 00100 76 61 72 2f 6c 69 62 2f 64 6f 63 6b 65 72 2f 6f var/lib/docker/o | | 00110 76 65 72 6c 61 79 32 2f 6c 2f 49 4d 34 47 33 4d verlay2/l/IM4G3M | | 00120 5a 52 48 53 4b 58 44 59 58 33 51 4d 34 52 37 42 ZRHSKXDYX3QM4R7B | | 00130 36 48 41 58 2c 75 70 70 65 72 64 69 72 3d 2f 76 6HAX,upperdir=/v | | 00140 61 72 2f 6c 69 62 2f 64 6f 63 6b 65 72 2f 6f 76 ar/lib/docker/ov | | 00150 65 72 6c 61 79 32 2f 66 35 35 36 63 31 66 36 64 erlay2/f556c1f6d | | 00160 66 61 31 38 39 39 31 32 65 66 38 37 30 34 32 37 fa189912ef870427 | | 00170 36 63 64 37 63 30 61 30 39 38 39 36 39 65 62 61 6cd7c0a098969eba | | 00180 33 39 32 32 30 61 32 64 31 64 30 36 34 32 65 65 39220a2d1d0642ee | | 00190 30 37 62 37 30 64 61 2f 64 69 66 66 2c 77 6f 72 07b70da/diff,wor | | 001a0 6b 64 69 72 3d 2f 76 61 72 2f 6c 69 62 2f 64 6f kdir=/var/lib/do | | 001b0 63 6b 65 72 2f 6f 76 65 72 6c 61 79 32 2f 66 35 cker/overlay2/f5 | | 001c0 35 36 63 31 66 36 64 66 61 31 38 39 39 31 32 65 56c1f6dfa189912e | | 001d0 66 38 37 30 34 32 37 36 63 64 37 63 30 61 30 39 f8704276cd7c0a09 | | 001e0 38 39 36 39 65 62 61 33 39 32 32 30 61 32 64 31 8969eba39220a2d1 | | 001f0 64 30 36 34 32 65 65 30 37 62 37 30 64 61 2f 77 d0642ee07b70da/w | | 00200 6f 72 6b 20 30 20 30 0a 70 72 6f 63 20 2f 70 72 ork 0 0.proc /pr | | 00210 6f 63 20 70 72 6f 63 20 72 77 2c 6e 6f 73 75 69 oc proc rw,nosui | | 00220 64 2c 6e 6f 64 65 76 2c 6e 6f 65 78 65 63 2c 72 d,nodev,noexec,r | | 00230 65 6c 61 74 69 6d 65 20 30 20 30 0a 74 6d 70 66 elatime 0 0.tmpf | | 00240 73 20 2f 64 65 76 20 74 6d 70 66 73 20 72 77 2c s /dev tmpfs rw, | | 00250 6e 6f 73 75 69 64 2c 73 69 7a 65 3d 36 35 35 33 nosuid,size=6553 | | 00260 36 6b 2c 6d 6f 64 65 3d 37 35 35 20 30 20 30 0a 6k,mode=755 0 0. | | 00270 64 65 76 70 74 73 20 2f 64 65 76 2f 70 74 73 20 devpts /dev/pts | | 00280 64 65 76 70 74 73 20 72 77 2c 6e 6f 73 75 69 64 devpts rw,nosuid | | 00290 2c 6e 6f 65 78 65 63 2c 72 65 6c 61 74 69 6d 65 ,noexec,relatime | | 002a0 2c 67 69 64 3d 35 2c 6d 6f 64 65 3d 36 32 30 2c ,gid=5,mode=620, | | 002b0 70 74 6d 78 6d 6f 64 65 3d 36 36 36 20 30 20 30 ptmxmode=666 0 0 | | 002c0 0a 73 79 73 66 73 20 2f 73 79 73 20 73 79 73 66 .sysfs /sys sysf | | 002d0 73 20 72 77 2c 6e 6f 73 75 69 64 2c 6e 6f 64 65 s rw,nosuid,node | | 002e0 76 2c 6e 6f 65 78 65 63 2c 72 65 6c 61 74 69 6d v,noexec,relatim | | 002f0 65 20 30 20 30 0a 63 67 72 6f 75 70 20 2f 73 79 e 0 0.cgroup /sy | | 00300 73 2f 66 73 2f 63 67 72 6f 75 70 20 63 67 72 6f s/fs/cgroup cgro | | 00310 75 70 32 20 72 77 2c 6e 6f 73 75 69 64 2c 6e 6f up2 rw,nosuid,no | | 00320 64 65 76 2c 6e 6f 65 78 65 63 2c 72 65 6c 61 74 dev,noexec,relat | | 00330 69 6d 65 20 30 20 30 0a 6d 71 75 65 75 65 20 2f ime 0 0.mqueue / | | 00340 64 65 76 2f 6d 71 75 65 75 65 20 6d 71 75 65 75 dev/mqueue mqueu | | 00350 65 20 72 77 2c 6e 6f 73 75 69 64 2c 6e 6f 64 65 e rw,nosuid,node | | 00360 76 2c 6e 6f 65 78 65 63 2c 72 65 6c 61 74 69 6d v,noexec,relatim | | 00370 65 20 30 20 30 0a 73 68 6d 20 2f 64 65 76 2f 73 e 0 0.shm /dev/s | | 00380 68 6d 20 74 6d 70 66 73 20 72 77 2c 6e 6f 73 75 hm tmpfs rw,nosu | | 00390 69 64 2c 6e 6f 64 65 76 2c 6e 6f 65 78 65 63 2c id,nodev,noexec, | | 003a0 72 65 6c 61 74 69 6d 65 2c 73 69 7a 65 3d 36 35 relatime,size=65 | | 003b0 35 33 36 6b 20 30 20 30 0a 2f 2f 75 33 35 39 31 536k 0 0.//u1234 | | 003c0 32 39 2e 79 6f 75 72 2d 73 74 6f 72 61 67 65 62 56.your-storageb | | 003d0 6f 78 2e 64 65 2f 62 61 63 6b 75 70 2f 74 69 6d ox.de/backup/tim | | 003e0 65 6d 61 63 68 69 6e 65 20 2f 73 74 6f 72 61 67 emachine /storag | | 003f0 65 62 6f 78 20 63 69 66 73 20 72 77 2c 72 65 6c ebox cifs rw,rel | write(2, "mount: can't find /opt/timemachi"..., 51mount: can't find /opt/timemachine in /proc/mounts ) = 51 lseek(3, -504, SEEK_CUR) = 520 exit_group(1) = ? +++ exited with 1 +++ /opt/timemachine # cat /proc/mounts overlay / overlay rw,relatime,lowerdir=/var/lib/docker/overlay2/l/U2UXCT3CXHJEGCNI6R3VY7FTTQ:/var/lib/docker/overlay2/l/E5MPT5DEVLKWDY5J2UDBDTH2VP:/var/lib/docker/overlay2/l/BKT4R6RLU2JOZE2JBY5XUZSRZE:/var/lib/docker/overlay2/l/JYBE3MQXNOLBJZFG2HVOL6SNXN:/var/lib/docker/overlay2/l/IM4G3MZRHSKXDYX3QM4R7B6HAX,upperdir=/var/lib/docker/overlay2/f556c1f6dfa189912ef8704276cd7c0a098969eba39220a2d1d0642ee07b70da/diff,workdir=/var/lib/docker/overlay2/f556c1f6dfa189912ef8704276cd7c0a098969eba39220a2d1d0642ee07b70da/work 0 0 proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /dev tmpfs rw,nosuid,size=65536k,mode=755 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=666 0 0 sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 cgroup /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime 0 0 mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0 shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime,size=65536k 0 0 //u123456.your-storagebox.de/backup/timemachine /storagebox cifs rw,relatime,vers=3.1.1,cache=strict,username=u123456,uid=0,noforceuid,gid=0,noforcegid,addr=65.21.80.44,file_mode=0666,dir_mode=0777,soft,nounix,serverino,mapposix,rsize=4194304,wsize=4194304,bsize=1048576,echo_interval=1,actimeo=1,closetimeo=1 0 0 /dev/vda1 /run/samba ext4 rw,relatime,discard 0 0 /dev/vda1 /etc/resolv.conf ext4 rw,relatime,discard 0 0 /dev/vda1 /etc/hostname ext4 rw,relatime,discard 0 0 /dev/vda1 /etc/hosts ext4 rw,relatime,discard 0 0 /dev/vda1 /var/lib/samba ext4 rw,relatime,discard 0 0 /dev/vda1 /var/cache/samba ext4 rw,relatime,discard 0 0 /dev/loop0 /opt/timemachine ext4 ro,relatime 0 0 /opt/timemachine # -- You are receiving this mail because: You are on the CC list for the bug. From vda.linux at googlemail.com Tue Nov 7 05:55:35 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Tue, 7 Nov 2023 06:55:35 +0100 Subject: [git commit] start-stop-daemon: fix --help: -K or -S is required Message-ID: <20231107061453.B13FA86B97@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=0c71497e654fb5e9a9272f81ddb5d994d2839df4 branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master function old new delta .rodata 105381 105382 +1 packed_usage 34638 34602 -36 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 1/-36) Total: -35 bytes Signed-off-by: Denys Vlasenko --- debianutils/start_stop_daemon.c | 46 ++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 3e5dd9faa..16df67b3e 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -11,11 +11,12 @@ /* This is how it is supposed to work: -start-stop-daemon [OPTIONS] [--start|--stop] [[--] arguments...] +start-stop-daemon [OPTIONS] [--start|--stop] [[--] ARGS...] One (only) of these must be given: -S,--start Start -K,--stop Stop + -T,--status Check for the existence of a process, return exitcode (since version 1.16.1) Search for matching processes. If --stop is given, stop all matching processes (by sending a signal). @@ -36,20 +37,41 @@ with /proc/$PID/exe or argv[0] (comm can't be matched, it never contains path)] Unlike -n, we match against the full path: "ntpd" != "./ntpd" != "/path/to/ntpd" -p,--pidfile PID_FILE Look for processes with PID from this file + --ppid PPID Look for processes with parent pid (since version 1.17.7) Options which are valid for --start only: - -x,--exec EXECUTABLE Program to run (1st arg of execvp). Mandatory. + -x,--exec EXECUTABLE Program to run (1st arg of execvp). + If no -x, EXECUTABLE is taken from ARGS[0] -a,--startas NAME argv[0] (defaults to EXECUTABLE) -b,--background Put process into background + -O,--output FILE Redirect stdout and stderr to FILE when forcing the + daemon into the background (since version 1.20.6). Only + relevant when using --background. + Probably O_CREAT|O_TRUNC? What if execv fails - where does error msg go? "Old" stderr? FILE? Nowhere? -N,--nicelevel N Add N to process' nice level -c,--chuid USER[:[GRP]] Change to specified user [and group] -m,--make-pidfile Write PID to the pidfile (both -m and -p must be given!) + -P,--procsched policy:priority + This alters the process scheduler policy and priority of the + process before starting it (since version 1.15.0). The + priority can be optionally specified by appending a : + followed by the value. The default priority is 0. The + currently supported policy values are other, fifo and rr. + -r,--chroot root Change directory and chroot to root before starting the + process. Please note that the pidfile is also written after + the chroot. + -d,--chdir path Change directory to path before starting the process. This is + done after the chroot if the -r|--chroot option is set. When + not specified, start-stop-daemon will change directory to the + root directory before starting the process. Options which are valid for --stop only: -s,--signal SIG Signal to send (default:TERM) -t,--test Exit with status 0 if process is found (we don't actually start or stop daemons) + --remove-pidfile Used when stopping a program that does not remove its own pid + file (since version 1.17.19). Requires -p PIDFILE? Misc options: -o,--oknodo Exit with status 0 if nothing is done @@ -84,11 +106,11 @@ Misc options: //kbuild:lib-$(CONFIG_START_STOP_DAEMON) += start_stop_daemon.o //usage:#define start_stop_daemon_trivial_usage -//usage: "[OPTIONS] [-S|-K] ... [-- ARGS...]" +//usage: "-S|-K [OPTIONS] [-- ARGS...]" //usage:#define start_stop_daemon_full_usage "\n\n" //usage: "Search for matching processes, and then\n" -//usage: "-K: stop all matching processes\n" //usage: "-S: start a process unless a matching process is found\n" +//usage: "-K: stop all matching processes\n" //usage: "\nProcess matching:" //usage: "\n -u USERNAME|UID Match only this user's processes" //usage: "\n -n NAME Match processes with NAME" @@ -422,15 +444,19 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) opt = GETOPT32(argv, "^" "KSbqtma:n:s:u:c:x:p:" IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:") + "\0" + "K:S:K--S:S--K" /* -K or -S is required; they are mutually exclusive */ - /* -p is required if -m is given */ - /* -xpun (at least one) is required if -K is given */ + ":m?p" /* -p is required if -m is given */ + ":K?xpun" /* -xpun (at least one) is required if -K is given */ + /* (the above does not seem to be enforced by Debian, it does nothing + * if no matching is specified with -K, and it ignores ARGS + * - does not take ARGS[0] as program name to kill) + */ // /* -xa (at least one) is required if -S is given */ //WRONG: "start-stop-daemon -S -- sleep 5" is a valid invocation - /* -q turns off -v */ - "\0" - "K:S:K--S:S--K:m?p:K?xpun" - IF_FEATURE_START_STOP_DAEMON_FANCY("q-v"), + IF_FEATURE_START_STOP_DAEMON_FANCY(":q-v") /* -q turns off -v */ + , LONGOPTS &startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile IF_FEATURE_START_STOP_DAEMON_FANCY(,&opt_N) From vda.linux at googlemail.com Tue Nov 7 06:12:40 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Tue, 7 Nov 2023 07:12:40 +0100 Subject: [git commit] start-stop-daemon: add -d DIR chdir option Message-ID: <20231107061453.C6F08841F5@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=73f28134fc0987474384fde345559d4b34bf5385 branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master Add option to change the running directory before starting the process. This can be done using -d or --chdir options. Add also test cases to start-stop-daemon to test out the directory change option. function old new delta packed_usage 34602 34648 +46 start_stop_daemon_main 1107 1130 +23 start_stop_daemon_longopts 156 164 +8 .rodata 105382 105384 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 79/0) Total: 79 bytes Signed-off-by: ejaaskel Signed-off-by: Denys Vlasenko --- TODO | 2 -- debianutils/start_stop_daemon.c | 34 +++++++++++++++++++++------------- testsuite/start-stop-daemon.tests | 20 ++++++++++++++++++++ 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/TODO b/TODO index 72ae0f88d..6c7415a81 100644 --- a/TODO +++ b/TODO @@ -222,8 +222,6 @@ Minor stuff: --- unify progress_meter. wget, flash_eraseall, pipe_progress, fbsplash, setfiles. --- - support start-stop-daemon -d ---- (TODO list after discussion 11.05.2009) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 16df67b3e..750167349 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -11,7 +11,7 @@ /* This is how it is supposed to work: -start-stop-daemon [OPTIONS] [--start|--stop] [[--] ARGS...] +start-stop-daemon [OPTIONS] [--start|--stop] [[--] ARGS] One (only) of these must be given: -S,--start Start @@ -58,13 +58,14 @@ Options which are valid for --start only: priority can be optionally specified by appending a : followed by the value. The default priority is 0. The currently supported policy values are other, fifo and rr. - -r,--chroot root Change directory and chroot to root before starting the + -r,--chroot DIR Change directory and chroot to DIR before starting the process. Please note that the pidfile is also written after the chroot. - -d,--chdir path Change directory to path before starting the process. This is - done after the chroot if the -r|--chroot option is set. When - not specified, start-stop-daemon will change directory to the + -d,--chdir DIR Change directory to DIR before starting the process. This is + done after the chroot if the -r|--chroot option is set. + When not specified, start-stop-daemon will change directory to the root directory before starting the process. + ^^^^ Seems to be false, no default "/" chdir is done. Options which are valid for --stop only: -s,--signal SIG Signal to send (default:TERM) @@ -106,7 +107,7 @@ Misc options: //kbuild:lib-$(CONFIG_START_STOP_DAEMON) += start_stop_daemon.o //usage:#define start_stop_daemon_trivial_usage -//usage: "-S|-K [OPTIONS] [-- ARGS...]" +//usage: "-S|-K [OPTIONS] [-- ARGS]" //usage:#define start_stop_daemon_full_usage "\n\n" //usage: "Search for matching processes, and then\n" //usage: "-S: start a process unless a matching process is found\n" @@ -127,6 +128,7 @@ Misc options: //usage: "\n -N N Change nice level" //usage: ) //usage: "\n -c USER[:[GRP]] Change user/group" +//usage: "\n -d DIR Change to DIR" //usage: "\n -m Write PID to pidfile specified by -p" //usage: "\n-K only:" //usage: "\n -s SIG Signal to send" @@ -160,11 +162,12 @@ enum { OPT_s = (1 << 8), // -s OPT_u = (1 << 9), // -u OPT_c = (1 << 10), // -c - OPT_x = (1 << 11), // -x - OPT_p = (1 << 12), // -p - OPT_OKNODO = (1 << 13) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o - OPT_VERBOSE = (1 << 14) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v - OPT_NICELEVEL = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N + OPT_d = (1 << 11), // -d + OPT_x = (1 << 12), // -x + OPT_p = (1 << 13), // -p + OPT_OKNODO = (1 << 14) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o + OPT_VERBOSE = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v + OPT_NICELEVEL = (1 << 16) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N }; #define QUIET (option_mask32 & OPT_QUIET) #define TEST (option_mask32 & OPT_TEST) @@ -413,6 +416,7 @@ static const char start_stop_daemon_longopts[] ALIGN1 = "signal\0" Required_argument "s" "user\0" Required_argument "u" "chuid\0" Required_argument "c" + "chdir\0" Required_argument "d" "exec\0" Required_argument "x" "pidfile\0" Required_argument "p" # if ENABLE_FEATURE_START_STOP_DAEMON_FANCY @@ -433,6 +437,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) char *signame; char *startas = NULL; char *chuid; + char *chdir; #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY // char *retry_arg = NULL; // int retries = -1; @@ -442,7 +447,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) INIT_G(); opt = GETOPT32(argv, "^" - "KSbqtma:n:s:u:c:x:p:" + "KSbqtma:n:s:u:c:d:x:p:" IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:") "\0" "K:S:K--S:S--K" @@ -458,7 +463,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) IF_FEATURE_START_STOP_DAEMON_FANCY(":q-v") /* -q turns off -v */ , LONGOPTS - &startas, &cmdname, &signame, &userspec, &chuid, &execname, &pidfile + &startas, &cmdname, &signame, &userspec, &chuid, &chdir, &execname, &pidfile IF_FEATURE_START_STOP_DAEMON_FANCY(,&opt_N) /* We accept and ignore -R / --retry */ IF_FEATURE_START_STOP_DAEMON_FANCY(,NULL) @@ -586,6 +591,9 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) setgroups(1, &ugid.gid); } } + if (opt & OPT_d) { + xchdir(chdir); + } /* Try: * strace -oLOG start-stop-daemon -S -x /bin/usleep -a qwerty 500000 * should exec "/bin/usleep", but argv[0] should be "qwerty": diff --git a/testsuite/start-stop-daemon.tests b/testsuite/start-stop-daemon.tests index 0757b1288..e1e49ab5f 100755 --- a/testsuite/start-stop-daemon.tests +++ b/testsuite/start-stop-daemon.tests @@ -11,6 +11,21 @@ testing "start-stop-daemon -x without -a" \ "0\n" \ "" "" +testing "start-stop-daemon -x with -d on existing directory" \ + 'start-stop-daemon -S -d /tmp -x true 2>&1; echo $?' \ + "0\n" \ + "" "" + +testing "start-stop-daemon -x with -d on existing and check dir" \ + 'output=$(start-stop-daemon -S -d /tmp -x pwd); echo $output' \ + "/tmp\n" \ + "" "" + +testing "start-stop-daemon -x with --chdir on existing and check dir" \ + 'output=$(start-stop-daemon -S --chdir /tmp -x pwd); echo $output' \ + "/tmp\n" \ + "" "" + testing "start-stop-daemon -a without -x" \ 'start-stop-daemon -S -a false 2>&1; echo $?' \ "1\n" \ @@ -21,6 +36,11 @@ testing "start-stop-daemon without -x and -a" \ "1\n" \ "" "" +testing "start-stop-daemon -x with -d on non-existing directory" \ + 'start-stop-daemon -S -d /non-existent -x true > /dev/null 2>&1; echo $?' \ + "1\n" \ + "" "" + # This runs /bin/false with argv[0..2] of { "qwerty", "false", NULL }. # # Unfortunately, this does not actually check argv[0] correctness, From vda.linux at googlemail.com Tue Nov 7 14:59:11 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Tue, 7 Nov 2023 15:59:11 +0100 Subject: [git commit] start-stop-daemon: update comment, no code changes Message-ID: <20231107145936.0F5C886BC4@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=da8d1d84fd46e61eec0772ff339fde0952777a5f branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master Signed-off-by: Denys Vlasenko --- debianutils/start_stop_daemon.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 750167349..8573c6990 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -17,6 +17,10 @@ One (only) of these must be given: -S,--start Start -K,--stop Stop -T,--status Check for the existence of a process, return exitcode (since version 1.16.1) + 0 - program is running + 1 - program is not running and the pid file exists. + 3 - program is not running. + 4 - can't determine program status. Search for matching processes. If --stop is given, stop all matching processes (by sending a signal). @@ -45,9 +49,10 @@ Options which are valid for --start only: -a,--startas NAME argv[0] (defaults to EXECUTABLE) -b,--background Put process into background -O,--output FILE Redirect stdout and stderr to FILE when forcing the - daemon into the background (since version 1.20.6). Only - relevant when using --background. - Probably O_CREAT|O_TRUNC? What if execv fails - where does error msg go? "Old" stderr? FILE? Nowhere? + daemon into the background (since version 1.20.6). + Requires --background and absolute pathname (tested with 1.21.22). + Uses O_CREAT|O_APPEND! + If execv fails, error message goes to FILE. -N,--nicelevel N Add N to process' nice level -c,--chuid USER[:[GRP]] Change to specified user [and group] -m,--make-pidfile Write PID to the pidfile @@ -66,6 +71,11 @@ Options which are valid for --start only: When not specified, start-stop-daemon will change directory to the root directory before starting the process. ^^^^ Seems to be false, no default "/" chdir is done. + Tested -S with 1.21.22: + "start-stop-daemon -S -n pwd -a /bin/pwd" is the minimum needed to run pwd. + "start-stop-daemon -S -n pwd -x /bin/pwd" works too. + "start-stop-daemon -S -a /bin/pwd -x /bin/pwd" works too. + Earlier versions were less picky (which?) Options which are valid for --stop only: -s,--signal SIG Signal to send (default:TERM) From vda.linux at googlemail.com Tue Nov 7 15:59:09 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Tue, 7 Nov 2023 16:59:09 +0100 Subject: [git commit] sleep: Update doc Message-ID: <20231107160031.1C23B86BCA@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=d17c0a348fc10897d86e0e96aa98be5ac88d6fdd branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master 4c20d9f2b removed FEATURE_FLOAT_SLEEP option, thus since then there are only two variants. Fixes: 4c20d9f2b ("extend fractional duration support to "top -d N.N" and "timeout"") Signed-off-by: Petr Vorel Signed-off-by: Denys Vlasenko --- coreutils/sleep.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/coreutils/sleep.c b/coreutils/sleep.c index fa74f1fd4..6fd00f9f1 100644 --- a/coreutils/sleep.c +++ b/coreutils/sleep.c @@ -17,14 +17,15 @@ //config: default y //config: help //config: sleep is used to pause for a specified number of seconds. -//config: It comes in 3 versions: +//config: It comes in 2 versions: //config: - small: takes one integer parameter -//config: - fancy: takes multiple integer arguments with suffixes: -//config: sleep 1d 2h 3m 15s -//config: - fancy with fractional numbers: -//config: sleep 2.3s 4.5h sleeps for 16202.3 seconds -//config: Last one is "the most compatible" with coreutils sleep, -//config: but it adds around 1k of code. +//config: - fancy: +//config: * takes multiple integer arguments with suffixes: +//config: sleep 1d 2h 3m 15s +//config: * allows fractional numbers: +//config: sleep 2.3s 4.5h sleeps for 16202.3 seconds +//config: fancy is more compatible with coreutils sleep, but it adds around +//config: 1k of code. //config: //config:config FEATURE_FANCY_SLEEP //config: bool "Enable multiple arguments and s/m/h/d suffixes" From vda.linux at googlemail.com Tue Nov 7 20:44:07 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Tue, 7 Nov 2023 21:44:07 +0100 Subject: [git commit] start-stop-daemon: implement option -O|--output Message-ID: <20231107204548.18DB086BF7@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=389c0458da7d6e941886ea3b846c98cfd63dfdd3 branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master If specified redirect command stdout and stderr to given pathname. function old new delta start_stop_daemon_main 1130 1186 +56 start_stop_daemon_longopts 164 173 +9 packed_usage 34653 34656 +3 .rodata 105384 105386 +2 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/0 up/down: 70/0) Total: 70 bytes Signed-off-by: Louai Al-Khanji Signed-off-by: Denys Vlasenko --- debianutils/start_stop_daemon.c | 46 ++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 8573c6990..56a933fcb 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -18,9 +18,9 @@ One (only) of these must be given: -K,--stop Stop -T,--status Check for the existence of a process, return exitcode (since version 1.16.1) 0 - program is running - 1 - program is not running and the pid file exists. - 3 - program is not running. - 4 - can't determine program status. + 1 - program is not running and the pid file exists + 3 - program is not running + 4 - can't determine program status Search for matching processes. If --stop is given, stop all matching processes (by sending a signal). @@ -41,6 +41,7 @@ with /proc/$PID/exe or argv[0] (comm can't be matched, it never contains path)] Unlike -n, we match against the full path: "ntpd" != "./ntpd" != "/path/to/ntpd" -p,--pidfile PID_FILE Look for processes with PID from this file + --pid PID Look for process with this pid (since version 1.17.6) --ppid PPID Look for processes with parent pid (since version 1.17.7) Options which are valid for --start only: @@ -72,10 +73,10 @@ Options which are valid for --start only: root directory before starting the process. ^^^^ Seems to be false, no default "/" chdir is done. Tested -S with 1.21.22: - "start-stop-daemon -S -n pwd -a /bin/pwd" is the minimum needed to run pwd. - "start-stop-daemon -S -n pwd -x /bin/pwd" works too. - "start-stop-daemon -S -a /bin/pwd -x /bin/pwd" works too. - Earlier versions were less picky (which?) + "start-stop-daemon -S -x /bin/pwd" is the minimum needed to run pwd. + "start-stop-daemon -S -a /bin/pwd -n pwd" works too. + "start-stop-daemon -S -a /bin/pwd" does NOT work. + Earlier versions were less picky (which? Or is it only Gentoo's clone?) Options which are valid for --stop only: -s,--signal SIG Signal to send (default:TERM) @@ -110,6 +111,7 @@ Misc options: //config: -o|--oknodo ignored since we exit with 0 anyway //config: -v|--verbose //config: -N|--nicelevel N +//config: -O|--output FILE //applet:IF_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, BB_DIR_SBIN, BB_SUID_DROP, start_stop_daemon)) /* not NOEXEC: uses bb_common_bufsiz1 */ @@ -147,8 +149,9 @@ Misc options: //usage: IF_FEATURE_START_STOP_DAEMON_FANCY( //usage: "\n -o Exit with status 0 if nothing is done" //usage: "\n -v Verbose" -//usage: ) //usage: "\n -q Quiet" +//usage: "\n -O PILE Append stdout and stderr to FILE" +//usage: ) /* Override ENABLE_FEATURE_PIDFILE */ #define WANT_PIDFILE 1 @@ -178,6 +181,7 @@ enum { OPT_OKNODO = (1 << 14) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o OPT_VERBOSE = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v OPT_NICELEVEL = (1 << 16) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N + OPT_OUTPUT = (1 << 17) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -O }; #define QUIET (option_mask32 & OPT_QUIET) #define TEST (option_mask32 & OPT_TEST) @@ -420,6 +424,7 @@ static const char start_stop_daemon_longopts[] ALIGN1 = "oknodo\0" No_argument "o" "verbose\0" No_argument "v" "nicelevel\0" Required_argument "N" + "output\0" Required_argument "O" # endif "startas\0" Required_argument "a" "name\0" Required_argument "n" @@ -452,33 +457,42 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) // char *retry_arg = NULL; // int retries = -1; char *opt_N; + char *output; #endif INIT_G(); opt = GETOPT32(argv, "^" "KSbqtma:n:s:u:c:d:x:p:" - IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:") + IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:O:R:") "\0" "K:S:K--S:S--K" /* -K or -S is required; they are mutually exclusive */ ":m?p" /* -p is required if -m is given */ ":K?xpun" /* -xpun (at least one) is required if -K is given */ - /* (the above does not seem to be enforced by Debian, it does nothing + /* (the above does not seem to be enforced by Gentoo, it does nothing * if no matching is specified with -K, and it ignores ARGS * - does not take ARGS[0] as program name to kill) */ -// /* -xa (at least one) is required if -S is given */ -//WRONG: "start-stop-daemon -S -- sleep 5" is a valid invocation +// ":S?xa" /* -xa (at least one) is required if -S is given */ +//Gentoo clone: "start-stop-daemon -S -- sleep 5" is a valid invocation IF_FEATURE_START_STOP_DAEMON_FANCY(":q-v") /* -q turns off -v */ , LONGOPTS &startas, &cmdname, &signame, &userspec, &chuid, &chdir, &execname, &pidfile IF_FEATURE_START_STOP_DAEMON_FANCY(,&opt_N) + IF_FEATURE_START_STOP_DAEMON_FANCY(,&output) /* We accept and ignore -R / --retry */ IF_FEATURE_START_STOP_DAEMON_FANCY(,NULL) ); +//-O requires --background and absolute pathname (tested with 1.21.22). +//We don't bother requiring that (smaller code): +//#if ENABLE_FEATURE_START_STOP_DAEMON_FANCY +// if ((opt & OPT_OUTPUT) && !(opt & OPT_BACKGROUND)) +// bb_show_usage(); +//#endif + if (opt & OPT_s) { signal_nr = get_signum(signame); if (signal_nr < 0) bb_show_usage(); @@ -604,6 +618,14 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) if (opt & OPT_d) { xchdir(chdir); } +#if ENABLE_FEATURE_START_STOP_DAEMON_FANCY + if (opt & OPT_OUTPUT) { + int outfd = xopen(output, O_WRONLY | O_CREAT | O_APPEND); + xmove_fd(outfd, STDOUT_FILENO); + xdup2(STDOUT_FILENO, STDERR_FILENO); + /* on execv error, the message goes to -O file. This is intended */ + } +#endif /* Try: * strace -oLOG start-stop-daemon -S -x /bin/usleep -a qwerty 500000 * should exec "/bin/usleep", but argv[0] should be "qwerty": From vda.linux at googlemail.com Wed Nov 8 11:36:11 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 8 Nov 2023 12:36:11 +0100 Subject: [git commit] start-stop-daemon: typo fix Message-ID: <20231108113633.8770486CAB@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=2de67a62e812f2e4d13280f2b78712b6d344cfb7 branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master Signed-off-by: Denys Vlasenko --- debianutils/start_stop_daemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 56a933fcb..04ba8baa7 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -150,7 +150,7 @@ Misc options: //usage: "\n -o Exit with status 0 if nothing is done" //usage: "\n -v Verbose" //usage: "\n -q Quiet" -//usage: "\n -O PILE Append stdout and stderr to FILE" +//usage: "\n -O FILE Append stdout and stderr to FILE" //usage: ) /* Override ENABLE_FEATURE_PIDFILE */ From vda.linux at googlemail.com Wed Nov 8 13:07:20 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 8 Nov 2023 14:07:20 +0100 Subject: [git commit] start-stop-daemon: do not lose error messages with -b Message-ID: <20231108130746.6B94586CC8@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=58ca629fd27cd9d7f91a8ea90435cdb3f15381aa branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master function old new delta start_stop_daemon_main 1186 1206 +20 bb_daemonize_or_rexec 196 212 +16 bb_banner 47 46 -1 packed_usage 34656 34645 -11 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/2 up/down: 36/-12) Total: 24 bytes Signed-off-by: Denys Vlasenko --- debianutils/start_stop_daemon.c | 57 ++++++++++++++++++++--------------------- include/libbb.h | 11 +++++--- libbb/vfork_daemon_rexec.c | 9 ++++--- 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 04ba8baa7..00fa0a82c 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -71,7 +71,7 @@ Options which are valid for --start only: done after the chroot if the -r|--chroot option is set. When not specified, start-stop-daemon will change directory to the root directory before starting the process. - ^^^^ Seems to be false, no default "/" chdir is done. + ^^^^ Gentoo does not have the default chdir("/"). Debian does. Tested -S with 1.21.22: "start-stop-daemon -S -x /bin/pwd" is the minimum needed to run pwd. "start-stop-daemon -S -a /bin/pwd -n pwd" works too. @@ -111,7 +111,6 @@ Misc options: //config: -o|--oknodo ignored since we exit with 0 anyway //config: -v|--verbose //config: -N|--nicelevel N -//config: -O|--output FILE //applet:IF_START_STOP_DAEMON(APPLET_ODDNAME(start-stop-daemon, start_stop_daemon, BB_DIR_SBIN, BB_SUID_DROP, start_stop_daemon)) /* not NOEXEC: uses bb_common_bufsiz1 */ @@ -136,6 +135,7 @@ Misc options: //usage: "\n -x EXECUTABLE Program to run" //usage: "\n -a NAME Zeroth argument" //usage: "\n -b Background" +//usage: "\n -O FILE Append stdout and stderr to FILE" //usage: IF_FEATURE_START_STOP_DAEMON_FANCY( //usage: "\n -N N Change nice level" //usage: ) @@ -150,7 +150,6 @@ Misc options: //usage: "\n -o Exit with status 0 if nothing is done" //usage: "\n -v Verbose" //usage: "\n -q Quiet" -//usage: "\n -O FILE Append stdout and stderr to FILE" //usage: ) /* Override ENABLE_FEATURE_PIDFILE */ @@ -178,20 +177,20 @@ enum { OPT_d = (1 << 11), // -d OPT_x = (1 << 12), // -x OPT_p = (1 << 13), // -p - OPT_OKNODO = (1 << 14) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o - OPT_VERBOSE = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v - OPT_NICELEVEL = (1 << 16) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N - OPT_OUTPUT = (1 << 17) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -O + OPT_OUTPUT = (1 << 14), // -O + OPT_OKNODO = (1 << 15) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -o + OPT_VERBOSE = (1 << 16) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -v + OPT_NICELEVEL = (1 << 17) * ENABLE_FEATURE_START_STOP_DAEMON_FANCY, // -N }; #define QUIET (option_mask32 & OPT_QUIET) #define TEST (option_mask32 & OPT_TEST) struct globals { struct pid_list *found_procs; - char *userspec; - char *cmdname; - char *execname; - char *pidfile; + const char *userspec; + const char *cmdname; + const char *execname; + const char *pidfile; char *execname_cmpbuf; unsigned execname_sizeof; int user_id; @@ -361,7 +360,7 @@ static void do_procinit(void) static int do_stop(void) { - char *what; + const char *what; struct pid_list *p; int killed = 0; @@ -408,7 +407,7 @@ static int do_stop(void) } ret: if (ENABLE_FEATURE_CLEAN_UP) - free(what); + free((char *)what); return killed; } @@ -449,22 +448,22 @@ int start_stop_daemon_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) { unsigned opt; - char *signame; - char *startas = NULL; + const char *signame; + const char *startas = NULL; char *chuid; - char *chdir; + const char *chdir; + const char *output = NULL; #if ENABLE_FEATURE_START_STOP_DAEMON_FANCY -// char *retry_arg = NULL; +// const char *retry_arg = NULL; // int retries = -1; - char *opt_N; - char *output; + const char *opt_N; #endif INIT_G(); opt = GETOPT32(argv, "^" - "KSbqtma:n:s:u:c:d:x:p:" - IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:O:R:") + "KSbqtma:n:s:u:c:d:x:p:O:" + IF_FEATURE_START_STOP_DAEMON_FANCY("ovN:R:") "\0" "K:S:K--S:S--K" /* -K or -S is required; they are mutually exclusive */ @@ -479,9 +478,8 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) IF_FEATURE_START_STOP_DAEMON_FANCY(":q-v") /* -q turns off -v */ , LONGOPTS - &startas, &cmdname, &signame, &userspec, &chuid, &chdir, &execname, &pidfile + &startas, &cmdname, &signame, &userspec, &chuid, &chdir, &execname, &pidfile, &output IF_FEATURE_START_STOP_DAEMON_FANCY(,&opt_N) - IF_FEATURE_START_STOP_DAEMON_FANCY(,&output) /* We accept and ignore -R / --retry */ IF_FEATURE_START_STOP_DAEMON_FANCY(,NULL) ); @@ -519,7 +517,7 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) } if (!startas) /* -a is not given: use -x EXECUTABLE or argv[0] */ startas = execname; - *--argv = startas; + *--argv = (char *)startas; } if (execname) { G.execname_sizeof = strlen(execname) + 1; @@ -578,8 +576,11 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) } /* Child */ setsid(); /* detach from controlling tty */ - /* Redirect stdio to /dev/null, close extra FDs */ - bb_daemon_helper(DAEMON_DEVNULL_STDIO + DAEMON_CLOSE_EXTRA_FDS); + /* Redirect stdin to /dev/null, close extra FDs */ + /* Testcase: "start-stop-daemon -Sb -d /does/not/exist usleep 1" should not eat error message */ + bb_daemon_helper(DAEMON_DEVNULL_STDIN + DAEMON_CLOSE_EXTRA_FDS); + if (!output) + output = bb_dev_null; /* redirect output just before execv */ /* On Linux, session leader can acquire ctty * unknowingly, by opening a tty. * Prevent this: stop being a session leader. @@ -618,14 +619,12 @@ int start_stop_daemon_main(int argc UNUSED_PARAM, char **argv) if (opt & OPT_d) { xchdir(chdir); } -#if ENABLE_FEATURE_START_STOP_DAEMON_FANCY - if (opt & OPT_OUTPUT) { + if (output) { int outfd = xopen(output, O_WRONLY | O_CREAT | O_APPEND); xmove_fd(outfd, STDOUT_FILENO); xdup2(STDOUT_FILENO, STDERR_FILENO); /* on execv error, the message goes to -O file. This is intended */ } -#endif /* Try: * strace -oLOG start-stop-daemon -S -x /bin/usleep -a qwerty 500000 * should exec "/bin/usleep", but argv[0] should be "qwerty": diff --git a/include/libbb.h b/include/libbb.h index 0883fb565..ef5d04713 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -1309,10 +1309,12 @@ void _exit_FAILURE(void) NORETURN FAST_FUNC; */ enum { DAEMON_CHDIR_ROOT = 1 << 0, - DAEMON_DEVNULL_STDIO = 1 << 1, - DAEMON_CLOSE_EXTRA_FDS = 1 << 2, - DAEMON_ONLY_SANITIZE = 1 << 3, /* internal use */ - //DAEMON_DOUBLE_FORK = 1 << 4, /* double fork to avoid controlling tty */ + DAEMON_DEVNULL_STDIN = 1 << 1, + DAEMON_DEVNULL_OUTERR = 2 << 1, + DAEMON_DEVNULL_STDIO = 3 << 1, + DAEMON_CLOSE_EXTRA_FDS = 1 << 3, + DAEMON_ONLY_SANITIZE = 1 << 4, /* internal use */ + //DAEMON_DOUBLE_FORK = 1 << 5, /* double fork to avoid controlling tty */ }; #if BB_MMU enum { re_execed = 0 }; @@ -1335,6 +1337,7 @@ enum { # define bb_daemonize(a) BUG_bb_daemonize_is_unavailable_on_nommu() #endif void bb_daemonize_or_rexec(int flags, char **argv) FAST_FUNC; +/* Unlike bb_daemonize_or_rexec, these two helpers do not setsid: */ void bb_sanitize_stdio(void) FAST_FUNC; #define bb_daemon_helper(arg) bb_daemonize_or_rexec((arg) | DAEMON_ONLY_SANITIZE, NULL) /* Clear dangerous stuff, set PATH. Return 1 if was run by different user. */ diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index a570ddbf2..2055c4b71 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -296,9 +296,12 @@ void FAST_FUNC bb_daemonize_or_rexec(int flags, char **argv) } if (flags & DAEMON_DEVNULL_STDIO) { - xdup2(fd, 0); - xdup2(fd, 1); - xdup2(fd, 2); + if (flags & DAEMON_DEVNULL_STDIN) + xdup2(fd, 0); + if (flags & DAEMON_DEVNULL_OUTERR) { + xdup2(fd, 1); + xdup2(fd, 2); + } } else { /* have 0,1,2 open at least to /dev/null */ while ((unsigned)fd < 2) From vda.linux at googlemail.com Wed Nov 8 13:42:00 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Wed, 8 Nov 2023 14:42:00 +0100 Subject: [git commit] start-stop-daemon: make --output not depend on FANCY Message-ID: <20231108134248.CA25786CCD@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=59cf2c23aebaeed29fd5a8a0f112e01c1f1dd45f branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master Signed-off-by: Denys Vlasenko --- debianutils/start_stop_daemon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 00fa0a82c..271bc4edf 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -419,11 +419,11 @@ static const char start_stop_daemon_longopts[] ALIGN1 = "quiet\0" No_argument "q" "test\0" No_argument "t" "make-pidfile\0" No_argument "m" + "output\0" Required_argument "O" # if ENABLE_FEATURE_START_STOP_DAEMON_FANCY "oknodo\0" No_argument "o" "verbose\0" No_argument "v" "nicelevel\0" Required_argument "N" - "output\0" Required_argument "O" # endif "startas\0" Required_argument "a" "name\0" Required_argument "n" From bugzilla at busybox.net Thu Nov 9 16:59:29 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 09 Nov 2023 16:59:29 +0000 Subject: [Bug 15001] netstat is vulnerable to escape sequence injection (busybox) In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15001 --- Comment #1 from Aldo Vargas --- CVE-2022-28391 is still shown as 'Fix not available' per different scanners for Busybox, is this something that will be fixed soon? -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Fri Nov 10 04:36:16 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Fri, 10 Nov 2023 04:36:16 +0000 Subject: [Bug 15751] `time` function reports more `maxrss` usage than GNU time In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15751 --- Comment #1 from Wesley Moore --- It seems that time is treating the the `ru_maxrss` value as a count of pages[1][2] but it's already in kilobytes[3]: > ru_maxrss (since Linux 2.6.32) > This is the maximum resident set size used (in kilobytes). [1]: https://git.busybox.net/busybox/tree/miscutils/time.c#n125 [2]: https://git.busybox.net/busybox/tree/miscutils/time.c#n284 [3]: https://man7.org/linux/man-pages/man2/getrusage.2.html -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Wed Nov 15 12:10:18 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Wed, 15 Nov 2023 12:10:18 +0000 Subject: [Bug 15853] New: 'cp -rf' doesn't keep destination permissions Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15853 Bug ID: 15853 Summary: 'cp -rf' doesn't keep destination permissions Product: Busybox Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Standard Compliance Assignee: unassigned at busybox.net Reporter: fulalas123 at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Issue: 'cp -rf' doesn't keep destination permissions. How to replicate: 1- have a 644 permission test.txt file in /etc/xdg/autostart 2- have a 755 permission test.txt file in /tmp 3- call busybox using: busybox cp -rf /tmp /etc/xdg/autostart/test.txt Expected behavior: the new file copied should replace the original one and keep the original file permissions. Current behavior: the new file copied replaces the original one but it also replaces its permission, and that's not the behavior of cp from coreutils (https://www.gnu.org/software/coreutils/). I'm using busybox 1.36.1 -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Wed Nov 15 12:52:44 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Wed, 15 Nov 2023 12:52:44 +0000 Subject: [Bug 15853] 'cp' doesn't keep destination permissions In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15853 fulalas123 at gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|'cp -rf' doesn't keep |'cp' doesn't keep |destination permissions |destination permissions -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Wed Nov 15 18:31:53 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Wed, 15 Nov 2023 18:31:53 +0000 Subject: [Bug 15853] 'cp' doesn't keep destination permissions In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15853 --- Comment #1 from fulalas123 at gmail.com --- I tried but failed to edit the issue because there's a tiny error in the steps to replicate. Here it goes: 1- have a 644 permission test.txt file in /etc/xdg/autostart 2- have a 755 permission test.txt file in /tmp 3- call busybox using: busybox cp /tmp/test.txt /etc/xdg/autostart -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Mon Nov 20 17:42:30 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Mon, 20 Nov 2023 17:42:30 +0000 Subject: [Bug 15859] New: built-in timeout does not handle 0 or fractional seconds Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15859 Bug ID: 15859 Summary: built-in timeout does not handle 0 or fractional seconds Product: Busybox Version: 1.35.x Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: spam at ipik.org CC: busybox-cvs at busybox.net Target Milestone: --- only takes integer seconds (also on 1.36.1) -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Mon Nov 20 17:44:52 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Mon, 20 Nov 2023 17:44:52 +0000 Subject: [Bug 15859] built-in timeout does not handle 0 or fractional seconds In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15859 --- Comment #1 from macmpi --- see https://bugs.busybox.net/show_bug.cgi?id=10101 (fixed in read) -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Mon Nov 20 20:42:14 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Mon, 20 Nov 2023 20:42:14 +0000 Subject: [Bug 15862] New: Devmem allocates more memory than it needs Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15862 Bug ID: 15862 Summary: Devmem allocates more memory than it needs Product: Busybox Version: 1.35.x Hardware: All OS: Linux Status: NEW Severity: major Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: tm.mehmetbal at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- In devmem program, check line 76. Width local variable holds length in bit(s). However offset_in_page and page_size local variables holds value in byte(s). When check that read/write address block spans the two pages, the left and right operands of the greater operator must be in units of bit(s) or byte(s). "if (offset_in_page + width > page_size)" in devmem program, source code line 76. -- You are receiving this mail because: You are on the CC list for the bug. From vda.linux at googlemail.com Thu Nov 23 00:18:02 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Thu, 23 Nov 2023 01:18:02 +0100 Subject: [git commit] top: improve large PID display in memory ('s') mode Message-ID: <20231123001857.6C75986CCC@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=28f41260935852eda6bd8ab1f26347c012ae0a53 branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master Display VSZ[RW] fields in more compact form if PID is wider. function old new delta display_topmem_process_list 564 614 +50 ulltoa5_and_space - 14 +14 ulltoa6_and_space 14 - -14 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 1/0 up/down: 64/-14) Total: 50 bytes Signed-off-by: Denys Vlasenko --- procps/top.c | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/procps/top.c b/procps/top.c index 6d25d9633..09d31c673 100644 --- a/procps/top.c +++ b/procps/top.c @@ -713,7 +713,10 @@ typedef struct { unsigned quot, rem; } bb_div_t; ppu = ppubuf; if (n != 6+6+8) { /* Format PID PPID USER part into 6+6+8 chars: - * shrink PID/PPID if possible, then truncate USER + * shrink PID/PPID if possible, then truncate USER. + * Tested on Linux 5.18.0: + * sysctl kernel.pid_max=4194304 is the maximum allowed, + * so PID and PPID are 7 chars wide at most. */ char *p, *pp; if (*ppu == ' ') { @@ -857,11 +860,15 @@ static void display_topmem_header(int scr_width, int *lines_rem_p) (*lines_rem_p) -= 3; } -static void ulltoa6_and_space(unsigned long long ul, char buf[6]) +/* see http://en.wikipedia.org/wiki/Tera */ +static void ulltoa5_and_space(unsigned long long ul, char buf[6]) { - /* see http://en.wikipedia.org/wiki/Tera */ smart_ulltoa5(ul, buf, " mgtpezy")[0] = ' '; } +static void ulltoa4_and_space(unsigned long long ul, char buf[5]) +{ + smart_ulltoa4(ul, buf, " mgtpezy")[0] = ' '; +} static NOINLINE void display_topmem_process_list(int lines_rem, int scr_width) { @@ -887,16 +894,24 @@ static NOINLINE void display_topmem_process_list(int lines_rem, int scr_width) while (--lines_rem >= 0) { /* PID VSZ VSZRW RSS (SHR) DIRTY (SHR) COMMAND */ int n = sprintf(line_buf, "%5u ", s->pid); - ulltoa6_and_space(s->vsz , &line_buf[1*6]); - if (n > 7 || (n == 7 && line_buf[6] != ' ')) - /* PID and VSZ are clumped together, truncate PID */ - line_buf[5] = '.'; - ulltoa6_and_space(s->vszrw , &line_buf[2*6]); - ulltoa6_and_space(s->rss , &line_buf[3*6]); - ulltoa6_and_space(s->rss_sh , &line_buf[4*6]); - ulltoa6_and_space(s->dirty , &line_buf[5*6]); - ulltoa6_and_space(s->dirty_sh, &line_buf[6*6]); - ulltoa6_and_space(s->stack , &line_buf[7*6]); + if (n > 7) { + /* PID is 7 chars long (up to 4194304) */ + ulltoa4_and_space(s->vsz , &line_buf[8]); + ulltoa4_and_space(s->vszrw, &line_buf[8+5]); + /* the next field (RSS) starts at 8+10 = 3*6 */ + } else { + if (n == 7) /* PID is 6 chars long */ + ulltoa4_and_space(s->vsz, &line_buf[7]); + /* the next field (VSZRW) starts at 7+5 = 2*6 */ + else /* PID is 5 chars or less */ + ulltoa5_and_space(s->vsz, &line_buf[6]); + ulltoa5_and_space(s->vszrw, &line_buf[2*6]); + } + ulltoa5_and_space(s->rss , &line_buf[3*6]); + ulltoa5_and_space(s->rss_sh , &line_buf[4*6]); + ulltoa5_and_space(s->dirty , &line_buf[5*6]); + ulltoa5_and_space(s->dirty_sh, &line_buf[6*6]); + ulltoa5_and_space(s->stack , &line_buf[7*6]); line_buf[8*6] = '\0'; if (scr_width > (int)MIN_WIDTH) { read_cmdline(&line_buf[8*6], scr_width - MIN_WIDTH, s->pid, s->comm); From vda.linux at googlemail.com Mon Nov 13 10:32:35 2023 From: vda.linux at googlemail.com (Denys Vlasenko) Date: Mon, 13 Nov 2023 11:32:35 +0100 Subject: [git commit] Cygwin: regenerate defconfig Message-ID: <20231123001857.5C7D5873A2@busybox.osuosl.org> commit: https://git.busybox.net/busybox/commit/?id=a63b60bdd6fa26b867c80d44074118babbae7ffd branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master Signed-off-by: Christian Franke Signed-off-by: Denys Vlasenko --- configs/cygwin_defconfig | 792 ++++++++++++++++++++++++++++++----------------- 1 file changed, 515 insertions(+), 277 deletions(-) diff --git a/configs/cygwin_defconfig b/configs/cygwin_defconfig index c09bc9281..61e2c2463 100644 --- a/configs/cygwin_defconfig +++ b/configs/cygwin_defconfig @@ -1,52 +1,41 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.19.0.git -# Sun Jul 10 12:48:50 2011 +# Busybox version: 1.37.0.git +# Mon Oct 9 11:08:46 2023 # CONFIG_HAVE_DOT_CONFIG=y # -# Busybox Settings -# - -# -# General Configuration +# Settings # CONFIG_DESKTOP=y # CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set CONFIG_INCLUDE_SUSv2=y -# CONFIG_USE_PORTABLE_CODE is not set -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y CONFIG_FEATURE_COMPRESS_USAGE=y -CONFIG_FEATURE_INSTALLER=y -# CONFIG_INSTALL_NO_USR is not set -# CONFIG_LOCALE_SUPPORT is not set -CONFIG_UNICODE_SUPPORT=y -# CONFIG_UNICODE_USING_LOCALE is not set -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set -CONFIG_SUBST_WCHAR=65533 -CONFIG_LAST_SUPPORTED_WCHAR=0 -# CONFIG_UNICODE_COMBINING_WCHARS is not set -# CONFIG_UNICODE_WIDE_WCHARS is not set -# CONFIG_UNICODE_BIDI_SUPPORT is not set -# CONFIG_UNICODE_NEUTRAL_TABLE is not set -# CONFIG_UNICODE_PRESERVE_BROKEN is not set -CONFIG_LONG_OPTS=y +CONFIG_LFS=y +CONFIG_TIME64=y +# CONFIG_PAM is not set CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set CONFIG_FEATURE_PIDFILE=y +CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +CONFIG_FEATURE_INSTALLER=y +# CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y # CONFIG_FEATURE_SUID_CONFIG is not set # CONFIG_FEATURE_SUID_CONFIG_QUIET is not set -# CONFIG_SELINUX is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y # @@ -56,21 +45,17 @@ CONFIG_FEATURE_SYSLOG=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" +CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set +CONFIG_EXTRA_LDFLAGS="" +CONFIG_EXTRA_LDLIBS="" +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -85,29 +70,66 @@ CONFIG_INSTALL_APPLET_SYMLINKS=y CONFIG_PREFIX="./_install" # -# Busybox Library Tuning +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning # +# CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y +CONFIG_SHA256_HWACCEL=y +CONFIG_SHA3_SMALL=1 +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +CONFIG_FEATURE_USE_SENDFILE=y +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set CONFIG_FEATURE_EDITING_HISTORY=255 CONFIG_FEATURE_EDITING_SAVEHISTORY=y +# CONFIG_FEATURE_EDITING_SAVE_ON_EXIT is not set +CONFIG_FEATURE_REVERSE_SEARCH=y CONFIG_FEATURE_TAB_COMPLETION=y # CONFIG_FEATURE_USERNAME_COMPLETION is not set CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set -CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -# CONFIG_MONOTONIC_SYSCALL is not set -CONFIG_IOCTL_HEX2STR_ERROR=y -CONFIG_FEATURE_HWIB=y +# CONFIG_LOCALE_SUPPORT is not set +CONFIG_UNICODE_SUPPORT=y +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=65533 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -124,76 +146,106 @@ CONFIG_FEATURE_SEAMLESS_GZ=y # CONFIG_AR is not set # CONFIG_FEATURE_AR_LONG_FILENAMES is not set # CONFIG_FEATURE_AR_CREATE is not set +# CONFIG_UNCOMPRESS is not set +CONFIG_GUNZIP=y +CONFIG_ZCAT=y +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y CONFIG_BUNZIP2=y +CONFIG_BZCAT=y +CONFIG_UNLZMA=y +CONFIG_LZCAT=y +CONFIG_LZMA=y +CONFIG_UNXZ=y +CONFIG_XZCAT=y +CONFIG_XZ=y CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y CONFIG_FEATURE_CPIO_O=y CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y # CONFIG_DPKG is not set # CONFIG_DPKG_DEB is not set -CONFIG_GUNZIP=y CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y +CONFIG_GZIP_FAST=0 +# CONFIG_FEATURE_GZIP_LEVELS is not set +CONFIG_FEATURE_GZIP_DECOMPRESS=y CONFIG_LZOP=y +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set # CONFIG_LZOP_COMPR_HIGH is not set -CONFIG_RPM2CPIO=y CONFIG_RPM=y +CONFIG_RPM2CPIO=y CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y CONFIG_FEATURE_TAR_AUTODETECT=y CONFIG_FEATURE_TAR_FROM=y CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_TO_COMMAND=y CONFIG_FEATURE_TAR_UNAME_GNAME=y CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # CONFIG_FEATURE_TAR_SELINUX is not set -# CONFIG_UNCOMPRESS is not set -CONFIG_UNLZMA=y -CONFIG_FEATURE_LZMA_FAST=y -CONFIG_LZMA=y -CONFIG_UNXZ=y -CONFIG_XZ=y CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +CONFIG_FEATURE_UNZIP_BZIP2=y +CONFIG_FEATURE_UNZIP_LZMA=y +CONFIG_FEATURE_UNZIP_XZ=y +CONFIG_FEATURE_LZMA_FAST=y # # Coreutils # +CONFIG_FEATURE_VERBOSE=y + +# +# Common options for date and touch +# +CONFIG_FEATURE_TIMEZONE=y + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -# CONFIG_FEATURE_DATE_NANO is not set -CONFIG_FEATURE_DATE_COMPAT=y -CONFIG_ID=y -CONFIG_GROUPS=y -CONFIG_TEST=y -CONFIG_FEATURE_TEST_64=y -CONFIG_TOUCH=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -CONFIG_BASE64=y -CONFIG_CAL=y -CONFIG_CATV=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y CONFIG_CHGRP=y CONFIG_CHMOD=y CONFIG_CHOWN=y CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y CONFIG_CHROOT=y CONFIG_CKSUM=y +CONFIG_CRC32=y CONFIG_COMM=y CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y CONFIG_DD=y CONFIG_FEATURE_DD_SIGNAL_HANDLING=y CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y CONFIG_FEATURE_DD_IBS_OBS=y +CONFIG_FEATURE_DD_STATUS=y CONFIG_DF=y CONFIG_FEATURE_DF_FANCY=y +CONFIG_FEATURE_SKIP_ROOTFS=y CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y @@ -202,40 +254,54 @@ CONFIG_DU=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y CONFIG_EXPAND=y -CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_UNEXPAND=y CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y -CONFIG_FSYNC=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y CONFIG_LN=y CONFIG_LOGNAME=y CONFIG_LS=y CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FOLLOWLINKS=y CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y CONFIG_FEATURE_LS_SORTFILES=y CONFIG_FEATURE_LS_TIMESTAMPS=y CONFIG_FEATURE_LS_USERNAME=y CONFIG_FEATURE_LS_COLOR=y CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA512SUM=y +CONFIG_SHA3SUM=y + +# +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y CONFIG_MKFIFO=y CONFIG_MKNOD=y +CONFIG_MKTEMP=y CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y CONFIG_NICE=y +CONFIG_NL=y CONFIG_NOHUP=y +CONFIG_NPROC=y CONFIG_OD=y +CONFIG_PASTE=y CONFIG_PRINTENV=y CONFIG_PRINTF=y CONFIG_PWD=y @@ -244,68 +310,76 @@ CONFIG_FEATURE_READLINK_FOLLOW=y CONFIG_REALPATH=y CONFIG_RM=y CONFIG_RMDIR=y -CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y CONFIG_SEQ=y -CONFIG_SHA1SUM=y -CONFIG_SHA256SUM=y -CONFIG_SHA512SUM=y +CONFIG_SHRED=y +CONFIG_SHUF=y CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_FEATURE_FLOAT_SLEEP=y CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set CONFIG_SPLIT=y CONFIG_FEATURE_SPLIT_FANCY=y # CONFIG_STAT is not set # CONFIG_FEATURE_STAT_FORMAT is not set +# CONFIG_FEATURE_STAT_FILESYSTEM is not set CONFIG_STTY=y CONFIG_SUM=y CONFIG_SYNC=y +CONFIG_FEATURE_SYNC_FANCY=y +CONFIG_FSYNC=y CONFIG_TAC=y CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y +CONFIG_TRUNCATE=y +CONFIG_TSORT=y CONFIG_TTY=y CONFIG_UNAME=y -CONFIG_UNEXPAND=y -CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_UNAME_OSNAME="GNU/Linux" +CONFIG_BB_ARCH=y CONFIG_UNIQ=y +CONFIG_UNLINK=y CONFIG_USLEEP=y CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y CONFIG_UUENCODE=y CONFIG_WC=y CONFIG_FEATURE_WC_LARGE=y # CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set CONFIG_WHOAMI=y CONFIG_YES=y -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum, sha256sum, sha512sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - # # Console Utilities # # CONFIG_CHVT is not set -# CONFIG_FGCONSOLE is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set +# CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set # CONFIG_LOADKMAP is not set # CONFIG_OPENVT is not set CONFIG_RESET=y @@ -313,36 +387,48 @@ CONFIG_RESIZE=y CONFIG_FEATURE_RESIZE_PRINT=y # CONFIG_SETCONSOLE is not set # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETFONT is not set -# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set -CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set -# CONFIG_FEATURE_LOADFONT_PSF2 is not set -# CONFIG_FEATURE_LOADFONT_RAW is not set # # Debian Utilities # -CONFIG_MKTEMP=y CONFIG_PIPE_PROGRESS=y CONFIG_RUN_PARTS=y CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y CONFIG_FEATURE_RUN_PARTS_FANCY=y CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +CONFIG_RESUME=y +CONFIG_RUN_INIT=y + # # Editors # +CONFIG_AWK=y +CONFIG_FEATURE_AWK_LIBM=y +CONFIG_FEATURE_AWK_GNU_EXTENSIONS=y +CONFIG_CMP=y +CONFIG_DIFF=y +CONFIG_FEATURE_DIFF_LONG_OPTIONS=y +CONFIG_FEATURE_DIFF_DIR=y +CONFIG_ED=y CONFIG_PATCH=y +CONFIG_SED=y CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 # CONFIG_FEATURE_VI_8BIT is not set CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -353,14 +439,10 @@ CONFIG_FEATURE_VI_SETOPTS=y CONFIG_FEATURE_VI_SET=y CONFIG_FEATURE_VI_WIN_RESIZE=y CONFIG_FEATURE_VI_ASK_TERMINAL=y -CONFIG_AWK=y -CONFIG_FEATURE_AWK_LIBM=y -CONFIG_CMP=y -CONFIG_DIFF=y -CONFIG_FEATURE_DIFF_LONG_OPTIONS=y -CONFIG_FEATURE_DIFF_DIR=y -CONFIG_ED=y -CONFIG_SED=y +CONFIG_FEATURE_VI_UNDO=y +CONFIG_FEATURE_VI_UNDO_QUEUE=y +CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -369,14 +451,22 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y +CONFIG_FEATURE_FIND_EXEC_PLUS=y +CONFIG_FEATURE_FIND_EXEC_OK=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y @@ -384,20 +474,25 @@ CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set CONFIG_FEATURE_FIND_LINKS=y CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_EGREP=y +CONFIG_FGREP=y CONFIG_FEATURE_GREP_CONTEXT=y CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y +CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # # Init Utilities @@ -406,9 +501,13 @@ CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set # CONFIG_HALT is not set +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +CONFIG_FEATURE_WAIT_FOR_INIT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" # CONFIG_INIT is not set +# CONFIG_LINUXRC is not set # CONFIG_FEATURE_USE_INITTAB is not set # CONFIG_FEATURE_KILL_REMOVED is not set CONFIG_FEATURE_KILL_DELAY=0 @@ -416,45 +515,45 @@ CONFIG_FEATURE_KILL_DELAY=0 # CONFIG_FEATURE_INIT_SYSLOG is not set # CONFIG_FEATURE_INIT_QUIET is not set # CONFIG_FEATURE_INIT_COREDUMPS is not set -# CONFIG_LINUXRC is not set CONFIG_INIT_TERMINAL_TYPE="" -CONFIG_MESG=y -CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set # # Login/Password Management Utilities # -CONFIG_ADD_SHELL=y -CONFIG_REMOVE_SHELL=y CONFIG_FEATURE_SHADOWPASSWDS=y CONFIG_USE_BB_PWD_GRP=y CONFIG_USE_BB_SHADOW=y CONFIG_USE_BB_CRYPT=y CONFIG_USE_BB_CRYPT_SHA=y +CONFIG_ADD_SHELL=y +CONFIG_REMOVE_SHELL=y +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y # CONFIG_FEATURE_CHECK_NAMES is not set +CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 CONFIG_LAST_SYSTEM_ID=999 -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y +CONFIG_CHPASSWD=y +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO="des" +CONFIG_CRYPTPW=y +CONFIG_MKPASSWD=y CONFIG_DELUSER=y CONFIG_DELGROUP=y CONFIG_FEATURE_DEL_USER_FROM_GROUP=y # CONFIG_GETTY is not set CONFIG_LOGIN=y -# CONFIG_PAM is not set +# CONFIG_LOGIN_SESSION_AS_CHILD is not set CONFIG_LOGIN_SCRIPTS=y CONFIG_FEATURE_NOLOGIN=y CONFIG_FEATURE_SECURETTY=y CONFIG_PASSWD=y CONFIG_FEATURE_PASSWD_WEAK_CHECK=y -CONFIG_CRYPTPW=y -CONFIG_CHPASSWD=y CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set CONFIG_SULOGIN=y CONFIG_VLOCK=y @@ -469,29 +568,29 @@ CONFIG_CHATTR=y # # Linux Module Utilities # -# CONFIG_MODINFO is not set # CONFIG_MODPROBE_SMALL is not set -# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set -# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set +# CONFIG_DEPMOD is not set # CONFIG_INSMOD is not set -# CONFIG_RMMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +# CONFIG_MODINFO is not set # CONFIG_MODPROBE is not set # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set -# CONFIG_DEPMOD is not set +# CONFIG_RMMOD is not set # # Options common to multiple modutils # +# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES is not set -# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_MODUTILS_ALIAS is not set # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set CONFIG_DEFAULT_MODULES_DIR="" @@ -500,18 +599,23 @@ CONFIG_DEFAULT_DEPMOD_FILE="" # # Linux System Utilities # -# CONFIG_BLOCKDEV is not set -CONFIG_REV=y # CONFIG_ACPID is not set # CONFIG_FEATURE_ACPID_COMPAT is not set +CONFIG_BLKDISCARD=y # CONFIG_BLKID is not set # CONFIG_FEATURE_BLKID_TYPE is not set +# CONFIG_BLOCKDEV is not set +CONFIG_CAL=y +CONFIG_CHRT=y # CONFIG_DMESG is not set # CONFIG_FEATURE_DMESG_PRETTY is not set +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +CONFIG_FALLOCATE=y +CONFIG_FATATTR=y # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set # CONFIG_FDISK is not set # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set @@ -524,23 +628,23 @@ CONFIG_REV=y # CONFIG_FEATURE_FDISK_ADVANCED is not set # CONFIG_FINDFS is not set CONFIG_FLOCK=y +# CONFIG_FDFLUSH is not set # CONFIG_FREERAMDISK is not set CONFIG_FSCK_MINIX=y -# CONFIG_MKFS_EXT2 is not set -# CONFIG_MKFS_MINIX is not set -CONFIG_FEATURE_MINIX2=y -# CONFIG_MKFS_REISER is not set -# CONFIG_MKFS_VFAT is not set +CONFIG_FSFREEZE=y +CONFIG_FSTRIM=y CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y -CONFIG_FEATURE_HEXDUMP_REVERSE=y CONFIG_HD=y +CONFIG_XXD=y # CONFIG_HWCLOCK is not set -# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +# CONFIG_IONICE is not set CONFIG_IPCRM=y # CONFIG_IPCS is not set +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set # CONFIG_LOSETUP is not set # CONFIG_LSPCI is not set # CONFIG_LSUSB is not set @@ -550,6 +654,16 @@ CONFIG_IPCRM=y # CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set # CONFIG_FEATURE_MDEV_EXEC is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set +# CONFIG_FEATURE_MDEV_DAEMON is not set +CONFIG_MESG=y +CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y +CONFIG_MKE2FS=y +# CONFIG_MKFS_EXT2 is not set +# CONFIG_MKFS_MINIX is not set +CONFIG_FEATURE_MINIX2=y +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +# CONFIG_MKFS_VFAT is not set CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y @@ -562,57 +676,90 @@ CONFIG_MORE=y # CONFIG_FEATURE_MOUNT_CIFS is not set # CONFIG_FEATURE_MOUNT_FLAGS is not set # CONFIG_FEATURE_MOUNT_FSTAB is not set +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +# CONFIG_MOUNTPOINT is not set +CONFIG_NOLOGIN=y +# CONFIG_NOLOGIN_DEPENDENCIES is not set +CONFIG_NSENTER=y # CONFIG_PIVOT_ROOT is not set # CONFIG_RDATE is not set CONFIG_RDEV=y CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y # CONFIG_RTCWAKE is not set CONFIG_SCRIPT=y CONFIG_SCRIPTREPLAY=y # CONFIG_SETARCH is not set -# CONFIG_SWAPONOFF is not set +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y +CONFIG_FEATURE_SWAPON_DISCARD=y # CONFIG_FEATURE_SWAPON_PRI is not set +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y # CONFIG_SWITCH_ROOT is not set +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set +CONFIG_UEVENT=y # CONFIG_UMOUNT is not set # CONFIG_FEATURE_UMOUNT_ALL is not set +CONFIG_UNSHARE=y +# CONFIG_WALL is not set # CONFIG_FEATURE_MOUNT_LOOP is not set # CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set # CONFIG_FEATURE_MTAB_SUPPORT is not set -# CONFIG_VOLUMEID is not set -# CONFIG_FEATURE_VOLUMEID_EXT is not set +CONFIG_VOLUMEID=y + +# +# Filesystem/Volume identification +# +CONFIG_FEATURE_VOLUMEID_BCACHE=y # CONFIG_FEATURE_VOLUMEID_BTRFS is not set -# CONFIG_FEATURE_VOLUMEID_REISERFS is not set +# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +CONFIG_FEATURE_VOLUMEID_EROFS=y +CONFIG_FEATURE_VOLUMEID_EXFAT=y +# CONFIG_FEATURE_VOLUMEID_EXT is not set +CONFIG_FEATURE_VOLUMEID_F2FS=y # CONFIG_FEATURE_VOLUMEID_FAT is not set # CONFIG_FEATURE_VOLUMEID_HFS is not set -# CONFIG_FEATURE_VOLUMEID_JFS is not set -# CONFIG_FEATURE_VOLUMEID_XFS is not set -# CONFIG_FEATURE_VOLUMEID_NTFS is not set # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set -# CONFIG_FEATURE_VOLUMEID_UDF is not set -# CONFIG_FEATURE_VOLUMEID_LUKS is not set +# CONFIG_FEATURE_VOLUMEID_JFS is not set +# CONFIG_FEATURE_VOLUMEID_LFS is not set +# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set # CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set -# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set +# CONFIG_FEATURE_VOLUMEID_LUKS is not set +CONFIG_FEATURE_VOLUMEID_MINIX=y +CONFIG_FEATURE_VOLUMEID_NILFS=y +# CONFIG_FEATURE_VOLUMEID_NTFS is not set +# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set +# CONFIG_FEATURE_VOLUMEID_REISERFS is not set # CONFIG_FEATURE_VOLUMEID_ROMFS is not set +# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set # CONFIG_FEATURE_VOLUMEID_SYSV is not set -# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set -# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set +CONFIG_FEATURE_VOLUMEID_UBIFS=y +# CONFIG_FEATURE_VOLUMEID_UDF is not set +# CONFIG_FEATURE_VOLUMEID_XFS is not set # # Miscellaneous Utilities # -# CONFIG_CONSPY is not set -# CONFIG_NANDWRITE is not set -# CONFIG_NANDDUMP is not set -# CONFIG_SETSERIAL is not set -# CONFIG_UBIATTACH is not set -# CONFIG_UBIDETACH is not set -# CONFIG_UBIMKVOL is not set -# CONFIG_UBIRMVOL is not set -# CONFIG_UBIRSVOL is not set -# CONFIG_UBIUPDATEVOL is not set # CONFIG_ADJTIMEX is not set +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BC=y +CONFIG_DC=y +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y # CONFIG_BEEP is not set CONFIG_FEATURE_BEEP_FREQ=0 CONFIG_FEATURE_BEEP_LENGTH_MS=0 @@ -624,89 +771,98 @@ CONFIG_FEATURE_CHAT_SWALLOW_OPTS=y CONFIG_FEATURE_CHAT_SEND_ESCAPES=y CONFIG_FEATURE_CHAT_VAR_ABORT_LEN=y CONFIG_FEATURE_CHAT_CLR_ABORT=y -CONFIG_CHRT=y +# CONFIG_CONSPY is not set CONFIG_CROND=y CONFIG_FEATURE_CROND_D=y CONFIG_FEATURE_CROND_CALL_SENDMAIL=y +CONFIG_FEATURE_CROND_SPECIAL_TIMES=y CONFIG_FEATURE_CROND_DIR="/var/spool/cron" CONFIG_CRONTAB=y -CONFIG_DC=y -CONFIG_FEATURE_DC_LIBM=y # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set CONFIG_DEVMEM=y -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FBSPLASH is not set -# CONFIG_FLASHCP is not set +# CONFIG_FLASH_ERASEALL is not set # CONFIG_FLASH_LOCK is not set # CONFIG_FLASH_UNLOCK is not set -# CONFIG_FLASH_ERASEALL is not set -# CONFIG_IONICE is not set +# CONFIG_FLASHCP is not set +CONFIG_GETFATTR=y +# CONFIG_HDPARM is not set +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +CONFIG_I2CGET=y +CONFIG_I2CSET=y +CONFIG_I2CDUMP=y +CONFIG_I2CDETECT=y +CONFIG_I2CTRANSFER=y # CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_SMALL is not set -# CONFIG_FEATURE_LAST_FANCY is not set CONFIG_LESS=y CONFIG_FEATURE_LESS_MAXLINES=9999999 CONFIG_FEATURE_LESS_BRACKETS=y CONFIG_FEATURE_LESS_FLAGS=y +CONFIG_FEATURE_LESS_TRUNCATE=y CONFIG_FEATURE_LESS_MARKS=y CONFIG_FEATURE_LESS_REGEXP=y CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y CONFIG_FEATURE_LESS_DASHCMD=y CONFIG_FEATURE_LESS_LINENUMS=y -# CONFIG_HDPARM is not set -# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set -# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set -# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set -# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set CONFIG_MAN=y # CONFIG_MICROCOM is not set -# CONFIG_MOUNTPOINT is not set +CONFIG_MIM=y CONFIG_MT=y +# CONFIG_NANDWRITE is not set +# CONFIG_NANDDUMP is not set +CONFIG_PARTPROBE=y # CONFIG_RAIDAUTORUN is not set # CONFIG_READAHEAD is not set # CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -CONFIG_SETSID=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +# CONFIG_SETSERIAL is not set CONFIG_STRINGS=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set CONFIG_TIME=y -CONFIG_TIMEOUT=y +CONFIG_TREE=y +CONFIG_TS=y CONFIG_TTYSIZE=y +# CONFIG_UBIATTACH is not set +# CONFIG_UBIDETACH is not set +# CONFIG_UBIMKVOL is not set +# CONFIG_UBIRMVOL is not set +# CONFIG_UBIRSVOL is not set +# CONFIG_UBIUPDATEVOL is not set +CONFIG_UBIRENAME=y CONFIG_VOLNAME=y -# CONFIG_WALL is not set # CONFIG_WATCHDOG is not set +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # # Networking Utilities # -# CONFIG_NAMEIF is not set -# CONFIG_FEATURE_NAMEIF_EXTENDED is not set -# CONFIG_NBDCLIENT is not set -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -# CONFIG_NC_110_COMPAT is not set -# CONFIG_PING is not set -# CONFIG_PING6 is not set -# CONFIG_FEATURE_FANCY_PING is not set -CONFIG_WHOIS=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_VERBOSE_RESOLUTION_ERRORS is not set +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +CONFIG_FEATURE_HWIB=y +# CONFIG_FEATURE_TLS_SHA1 is not set # CONFIG_ARP is not set # CONFIG_ARPING is not set # CONFIG_BRCTL is not set @@ -714,17 +870,18 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y # CONFIG_FEATURE_BRCTL_SHOW is not set CONFIG_DNSD=y # CONFIG_ETHER_WAKE is not set -CONFIG_FAKEIDENTD=y CONFIG_FTPD=y -CONFIG_FEATURE_FTP_WRITE=y +CONFIG_FEATURE_FTPD_WRITE=y CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST=y +CONFIG_FEATURE_FTPD_AUTHENTICATION=y CONFIG_FTPGET=y CONFIG_FTPPUT=y CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y CONFIG_HTTPD=y +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=80 CONFIG_FEATURE_HTTPD_RANGES=y -# CONFIG_FEATURE_HTTPD_USE_SENDFILE is not set CONFIG_FEATURE_HTTPD_SETUID=y CONFIG_FEATURE_HTTPD_BASIC_AUTH=y CONFIG_FEATURE_HTTPD_AUTH_MD5=y @@ -735,6 +892,10 @@ CONFIG_FEATURE_HTTPD_ENCODE_URL_STR=y CONFIG_FEATURE_HTTPD_ERROR_PAGES=y CONFIG_FEATURE_HTTPD_PROXY=y CONFIG_FEATURE_HTTPD_GZIP=y +CONFIG_FEATURE_HTTPD_ETAG=y +CONFIG_FEATURE_HTTPD_LAST_MODIFIED=y +CONFIG_FEATURE_HTTPD_DATE=y +CONFIG_FEATURE_HTTPD_ACL_IP=y # CONFIG_IFCONFIG is not set # CONFIG_FEATURE_IFCONFIG_STATUS is not set # CONFIG_FEATURE_IFCONFIG_SLIP is not set @@ -743,11 +904,10 @@ CONFIG_FEATURE_HTTPD_GZIP=y # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set # CONFIG_IFENSLAVE is not set # CONFIG_IFPLUGD is not set -# CONFIG_IFUPDOWN is not set +CONFIG_IFUP=y +CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="" # CONFIG_FEATURE_IFUPDOWN_IP is not set -# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set -# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set # CONFIG_FEATURE_IFUPDOWN_IPV4 is not set # CONFIG_FEATURE_IFUPDOWN_IPV6 is not set # CONFIG_FEATURE_IFUPDOWN_MAPPING is not set @@ -760,77 +920,115 @@ CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME=y CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN=y # CONFIG_FEATURE_INETD_RPC is not set # CONFIG_IP is not set +# CONFIG_IPADDR is not set +# CONFIG_IPLINK is not set +# CONFIG_IPROUTE is not set +# CONFIG_IPTUNNEL is not set +# CONFIG_IPRULE is not set +CONFIG_IPNEIGH=y # CONFIG_FEATURE_IP_ADDRESS is not set # CONFIG_FEATURE_IP_LINK is not set # CONFIG_FEATURE_IP_ROUTE is not set +CONFIG_FEATURE_IP_ROUTE_DIR="" # CONFIG_FEATURE_IP_TUNNEL is not set # CONFIG_FEATURE_IP_RULE is not set -# CONFIG_FEATURE_IP_SHORT_FORMS is not set +CONFIG_FEATURE_IP_NEIGH=y # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -# CONFIG_IPADDR is not set -# CONFIG_IPLINK is not set -# CONFIG_IPROUTE is not set -# CONFIG_IPTUNNEL is not set -# CONFIG_IPRULE is not set CONFIG_IPCALC=y -CONFIG_FEATURE_IPCALC_FANCY=y CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +# CONFIG_NAMEIF is not set +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set +# CONFIG_NBDCLIENT is not set +CONFIG_NC=y +# CONFIG_NETCAT is not set +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set # CONFIG_NETSTAT is not set # CONFIG_FEATURE_NETSTAT_WIDE is not set # CONFIG_FEATURE_NETSTAT_PRG is not set # CONFIG_NSLOOKUP is not set +# CONFIG_FEATURE_NSLOOKUP_BIG is not set +# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set +# CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +# CONFIG_PING is not set +# CONFIG_PING6 is not set +# CONFIG_FEATURE_FANCY_PING is not set CONFIG_PSCAN=y # CONFIG_ROUTE is not set # CONFIG_SLATTACH is not set +CONFIG_SSL_CLIENT=y +CONFIG_TC=y +CONFIG_FEATURE_TC_INGRESS=y CONFIG_TCPSVD=y +CONFIG_UDPSVD=y CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y CONFIG_TELNETD=y CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 CONFIG_FEATURE_TELNETD_INETD_WAIT=y CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y CONFIG_TFTPD=y - -# -# Common options for tftp/tftpd -# CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y CONFIG_FEATURE_TFTP_BLOCKSIZE=y -CONFIG_FEATURE_TFTP_PROGRESS_BAR=y # CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y # CONFIG_TRACEROUTE is not set # CONFIG_TRACEROUTE6 is not set # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set # CONFIG_TUNCTL is not set # CONFIG_FEATURE_TUNCTL_UG is not set +# CONFIG_VCONFIG is not set +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +CONFIG_FEATURE_WGET_OPENSSL=y +CONFIG_WHOIS=y +# CONFIG_ZCIP is not set # CONFIG_UDHCPD is not set -# CONFIG_DHCPRELAY is not set -# CONFIG_DUMPLEASES is not set -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BOOTP is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set # CONFIG_UDHCPC is not set # CONFIG_FEATURE_UDHCPC_ARPING is not set +# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=0 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 # CONFIG_FEATURE_UDHCP_RFC3397 is not set # CONFIG_FEATURE_UDHCP_8021Q is not set -CONFIG_UDHCPC_DEFAULT_SCRIPT="" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="" -CONFIG_UDPSVD=y -# CONFIG_VCONFIG is not set -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y -# CONFIG_ZCIP is not set # # Print Utilities @@ -842,8 +1040,8 @@ CONFIG_LPQ=y # # Mail Utilities # -CONFIG_MAKEMIME=y CONFIG_FEATURE_MIME_CHARSET="us-ascii" +CONFIG_MAKEMIME=y CONFIG_POPMAILDIR=y CONFIG_FEATURE_POPMAILDIR_DELIVERY=y CONFIG_REFORMIME=y @@ -853,94 +1051,112 @@ CONFIG_SENDMAIL=y # # Process Utilities # -CONFIG_IOSTAT=y -CONFIG_MPSTAT=y -CONFIG_NMETER=y -# CONFIG_PMAP is not set -# CONFIG_POWERTOP is not set -CONFIG_PSTREE=y -CONFIG_PWDX=y -CONFIG_SMEMCAP=y +CONFIG_FEATURE_FAST_TOP=y +# CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_FREE is not set CONFIG_FUSER=y +CONFIG_IOSTAT=y CONFIG_KILL=y CONFIG_KILLALL=y CONFIG_KILLALL5=y +CONFIG_LSOF=y +CONFIG_MPSTAT=y +CONFIG_NMETER=y CONFIG_PGREP=y +CONFIG_PKILL=y CONFIG_PIDOF=y CONFIG_FEATURE_PIDOF_SINGLE=y CONFIG_FEATURE_PIDOF_OMIT=y -CONFIG_PKILL=y +# CONFIG_PMAP is not set +# CONFIG_POWERTOP is not set +# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y +# CONFIG_FEATURE_PS_WIDE is not set +# CONFIG_FEATURE_PS_LONG is not set # CONFIG_FEATURE_PS_TIME is not set -CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y # CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y +CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS=y +CONFIG_PSTREE=y +CONFIG_PWDX=y +CONFIG_SMEMCAP=y CONFIG_BB_SYSCTL=y CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_SMP_CPU=y CONFIG_FEATURE_TOP_DECIMALS=y CONFIG_FEATURE_TOP_SMP_PROCESS=y CONFIG_FEATURE_TOPMEM=y -# CONFIG_FEATURE_SHOW_THREADS is not set # CONFIG_UPTIME is not set +# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set CONFIG_WATCH=y # # Runit Utilities # +CONFIG_CHPST=y +CONFIG_SETUIDGID=y +CONFIG_ENVUIDGID=y +CONFIG_ENVDIR=y +CONFIG_SOFTLIMIT=y CONFIG_RUNSV=y CONFIG_RUNSVDIR=y # CONFIG_FEATURE_RUNSVDIR_LOG is not set CONFIG_SV=y CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +CONFIG_SVC=y +CONFIG_SVOK=y CONFIG_SVLOGD=y -CONFIG_CHPST=y -CONFIG_SETUIDGID=y -CONFIG_ENVUIDGID=y -CONFIG_ENVDIR=y -CONFIG_SOFTLIMIT=y # CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set # CONFIG_GETSEBOOL is not set # CONFIG_LOAD_POLICY is not set # CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set # CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set # CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set # # Shells # +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y -# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y -CONFIG_ASH_GETOPTS=y +CONFIG_ASH_RANDOM_SUPPORT=y +CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set CONFIG_ASH_ECHO=y CONFIG_ASH_PRINTF=y CONFIG_ASH_TEST=y +CONFIG_ASH_HELP=y +CONFIG_ASH_GETOPTS=y CONFIG_ASH_CMDCMD=y -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y -CONFIG_ASH_RANDOM_SUPPORT=y -CONFIG_ASH_EXPAND_PRMT=y # CONFIG_CTTYHACK is not set CONFIG_HUSH=y +CONFIG_SHELL_HUSH=y CONFIG_HUSH_BASH_COMPAT=y CONFIG_HUSH_BRACE_EXPANSION=y -CONFIG_HUSH_HELP=y +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +CONFIG_HUSH_LINENO_VAR=y CONFIG_HUSH_INTERACTIVE=y CONFIG_HUSH_SAVEHISTORY=y CONFIG_HUSH_JOB=y @@ -951,34 +1167,56 @@ CONFIG_HUSH_CASE=y CONFIG_HUSH_FUNCTIONS=y CONFIG_HUSH_LOCAL=y CONFIG_HUSH_RANDOM_SUPPORT=y -CONFIG_HUSH_EXPORT_N=y CONFIG_HUSH_MODE_X=y -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -# CONFIG_FEATURE_BASH_IS_ASH is not set -# CONFIG_FEATURE_BASH_IS_HUSH is not set -CONFIG_FEATURE_BASH_IS_NONE=y -CONFIG_SH_MATH_SUPPORT=y -CONFIG_SH_MATH_SUPPORT_64=y +CONFIG_HUSH_ECHO=y +CONFIG_HUSH_PRINTF=y +CONFIG_HUSH_TEST=y +CONFIG_HUSH_HELP=y +CONFIG_HUSH_EXPORT=y +CONFIG_HUSH_EXPORT_N=y +CONFIG_HUSH_READONLY=y +CONFIG_HUSH_KILL=y +CONFIG_HUSH_WAIT=y +CONFIG_HUSH_COMMAND=y +CONFIG_HUSH_TRAP=y +CONFIG_HUSH_TYPE=y +CONFIG_HUSH_TIMES=y +CONFIG_HUSH_READ=y +CONFIG_HUSH_SET=y +CONFIG_HUSH_UNSET=y +CONFIG_HUSH_ULIMIT=y +CONFIG_HUSH_UMASK=y +CONFIG_HUSH_GETOPTS=y +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y # # System Logging Utilities # +# CONFIG_KLOGD is not set +# CONFIG_FEATURE_KLOGD_KLOGCTL is not set +CONFIG_LOGGER=y +CONFIG_LOGREAD=y +CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y CONFIG_SYSLOGD=y CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_DUP=y CONFIG_FEATURE_SYSLOGD_CFG=y +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 -CONFIG_LOGREAD=y -CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING=y -# CONFIG_KLOGD is not set -# CONFIG_FEATURE_KLOGD_KLOGCTL is not set -CONFIG_LOGGER=y +CONFIG_FEATURE_KMSG_SYSLOG=y From bugzilla at busybox.net Thu Nov 23 04:17:53 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:17:53 +0000 Subject: [Bug 15865] New: [busybox 1.36.1] use-after-free in awk Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15865 Bug ID: 15865 Summary: [busybox 1.36.1] use-after-free in awk Product: Busybox Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: zclin21 at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Created attachment 9661 --> https://bugs.busybox.net/attachment.cgi?id=9661&action=edit POC file Hi, busybox developers, We found a use-after-free vulnerability in awk applet of busybox v1.36.1. The affected component is xfuncs_printf.c:344 in xasprintf function. Following is the reproduction process, and we put the poc file in the attachment. [1.] Environment Ubuntu 18.04, 64 bit BusyBox 1.36.1 Clang 6.0.0 [2.] Compilation 2.1 Modify the Makefile: HOSTCC=clang -fsanitize=address HOSTCXX=clang++ -fsanitize=address CC=clang CFLAGS=-fsanitize=address CPPFLAGS=-fsanitize=address LDFLAGS="-Wl,--allow-multiple-definition" 2.2 Modify the Config.in file, switch the following configs to y? DEBUG: y DEBUG_PESSIMIZE: y FEATURE_CLEAN_UP: y DEBUG_SANITIZE: y 2.3 Commands for compilation: export ASAN_OPTIONS=detect_leaks=0 make defconfig make install [3.] Reproduction export ASAN_OPTIONS="abort_on_error=1 symbolize=0" ./busybox_unstripped awk -f $poc ./awk_t1_input [ASAN report]: ==14637==ERROR: AddressSanitizer: heap-use-after-free on address 0x6020000238d0 at pc 0x0000004486a7 bp 0x7ffe741090c0 sp 0x7ffe74108870 READ of size 2 at 0x6020000238d0 thread T0 #0 0x4486a6 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4486a6) #1 0x493375 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x493375) #2 0x51ad9e (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x51ad9e) #3 0xe52f5f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe52f5f) #4 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #5 0xe54597 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe54597) #6 0xe409ce (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe409ce) #7 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) #8 0x50dbaf (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50dbaf) #9 0x51036d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x51036d) #10 0x50db58 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50db58) #11 0x50c3fd (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50c3fd) #12 0x7f2f3c665c86 (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) #13 0x41e459 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x41e459) 0x6020000238d0 is located 0 bytes inside of 5-byte region [0x6020000238d0,0x6020000238d5) freed by thread T0 here: #0 0x4dc500 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dc500) #1 0xe5b37f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe5b37f) #2 0xe83b9d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe83b9d) #3 0xe522b1 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe522b1) #4 0xe48b79 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe48b79) #5 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #6 0xe54597 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe54597) #7 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) previously allocated by thread T0 here: #0 0x4dc6d0 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dc6d0) #1 0x7f2f3c6cc5bf (/lib/x86_64-linux-gnu/libc.so.6+0x885bf) SUMMARY: AddressSanitizer: heap-use-after-free (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4486a6) [line number]: addr2line -e ./busybox_unstripped 0x51ad9e .../busybox-1_36_1/libbb/xfuncs_printf.c:344 Best wishes, Zclin -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:29:04 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:29:04 +0000 Subject: [Bug 15868] New: [busybox 1.36.1] use-after-free in awk Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15868 Bug ID: 15868 Summary: [busybox 1.36.1] use-after-free in awk Product: Busybox Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: zclin21 at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Created attachment 9664 --> https://bugs.busybox.net/attachment.cgi?id=9664&action=edit P Hi, busybox developers, We found a use-after-free vulnerability in awk applet of busybox v1.36.1. The affected component is awk.c:3009, in evaluate function. Following is the reproduction process, and we put the poc file in the attachment. [1.] Environment Ubuntu 18.04, 64 bit BusyBox 1.36.1 Clang 6.0.0 [2.] Compilation 2.1 Modify the Makefile: HOSTCC=clang -fsanitize=address HOSTCXX=clang++ -fsanitize=address CC=clang CFLAGS=-fsanitize=address CPPFLAGS=-fsanitize=address LDFLAGS="-Wl,--allow-multiple-definition" 2.2 Modify the Config.in file, switch the following configs to y? DEBUG: y DEBUG_PESSIMIZE: y FEATURE_CLEAN_UP: y DEBUG_SANITIZE: y 2.3 Commands for compilation: export ASAN_OPTIONS=detect_leaks=0 make defconfig make install [3.] Reproduction export ASAN_OPTIONS="abort_on_error=1 symbolize=0" ./busybox_unstripped awk -f $poc ./awk_t1_input [ASAN report]: ==13571==ERROR: AddressSanitizer: heap-use-after-free on address 0x606000118520 at pc 0x000000e4a94f bp 0x7ffd6848ae30 sp 0x7ffd6848ae28 READ of size 4 at 0x606000118520 thread T0 #0 0xe4a94e (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4a94e) #1 0xe54597 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe54597) #2 0xe409ce (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe409ce) #3 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) #4 0x50dbaf (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50dbaf) #5 0x51036d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x51036d) #6 0x50db58 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50db58) #7 0x50c3fd (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50c3fd) #8 0x7f592e27cc86 (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) #9 0x41e459 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x41e459) 0x606000118520 is located 0 bytes inside of 64-byte region [0x606000118520,0x606000118560) freed by thread T0 here: #0 0x4dc500 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dc500) #1 0xe7f4ca (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe7f4ca) #2 0xe4a878 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4a878) #3 0xe54597 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe54597) #4 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) previously allocated by thread T0 here: #0 0x4dc6d0 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dc6d0) #1 0x519df2 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x519df2) #2 0xe4a878 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4a878) #3 0xe54597 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe54597) #4 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) SUMMARY: AddressSanitizer: heap-use-after-free (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4a94e) [line number]: addr2line -e ./busybox_unstripped 0xe4a94e .../busybox-1_36_1/editors/awk.c:3009 Best wishes, Zclin -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:29:35 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:29:35 +0000 Subject: [Bug 15868] [busybox 1.36.1] use-after-free in awk In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15868 zclin changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #9664|P |POC file description| | -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:35:41 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:35:41 +0000 Subject: [Bug 15865] [busybox 1.36.1] use-after-free in awk In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15865 --- Comment #1 from zclin --- Created attachment 9667 --> https://bugs.busybox.net/attachment.cgi?id=9667&action=edit awk_t1_input file -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:36:09 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:36:09 +0000 Subject: [Bug 15868] [busybox 1.36.1] use-after-free in awk In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15868 --- Comment #1 from zclin --- Created attachment 9670 --> https://bugs.busybox.net/attachment.cgi?id=9670&action=edit awk_t1_input file -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:43:46 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:43:46 +0000 Subject: [Bug 15871] New: [busybox 1.36.1] use-after-free in awk Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15871 Bug ID: 15871 Summary: [busybox 1.36.1] use-after-free in awk Product: Busybox Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: zclin21 at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Hi, busybox developers, We found a use-after-free vulnerability in awk applet of busybox v1.36.1. The affected component is awk.c:1064 in copyvar function. Following is the reproduction process, and we put the poc file in the attachment. [1.] Environment Ubuntu 18.04, 64 bit BusyBox 1.36.1 Clang 6.0.0 [2.] Compilation 2.1 Modify the Makefile: HOSTCC=clang -fsanitize=address HOSTCXX=clang++ -fsanitize=address CC=clang CFLAGS=-fsanitize=address CPPFLAGS=-fsanitize=address LDFLAGS="-Wl,--allow-multiple-definition" 2.2 Modify the Config.in file, switch the following configs to y? DEBUG: y DEBUG_PESSIMIZE: y FEATURE_CLEAN_UP: y DEBUG_SANITIZE: y 2.3 Commands for compilation: export ASAN_OPTIONS=detect_leaks=0 make defconfig make install [3.] Reproduction export ASAN_OPTIONS="abort_on_error=1 symbolize=0" ./busybox_unstripped awk -f $poc ./awk_t1_input [ASAN report]: ==32093==ERROR: AddressSanitizer: heap-use-after-free on address 0x606000003080 at pc 0x000000e7dfe2 bp 0x7fff6ee9b930 sp 0x7fff6ee9b928 READ of size 4 at 0x606000003080 thread T0 #0 0xe7dfe1 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe7dfe1) #1 0xe4bbdf (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4bbdf) #2 0xe4eb16 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4eb16) #3 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #4 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #5 0xe4062d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4062d) #6 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) #7 0x50dbaf (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50dbaf) #8 0x51036d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x51036d) #9 0x50db58 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50db58) #10 0x50c3fd (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50c3fd) #11 0x7f8358526c86 (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) #12 0x41e459 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x41e459) 0x606000003080 is located 0 bytes inside of 64-byte region [0x606000003080,0x6060000030c0) freed by thread T0 here: #0 0x4dc500 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dc500) #1 0xe7f4ca (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe7f4ca) #2 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #3 0xe4eb16 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4eb16) #4 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #5 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #6 0xe4062d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4062d) #7 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) previously allocated by thread T0 here: #0 0x4dc6d0 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dc6d0) #1 0x519df2 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x519df2) #2 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #3 0xe4eb16 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4eb16) #4 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #5 0xe4886f (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4886f) #6 0xe4062d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe4062d) #7 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) SUMMARY: AddressSanitizer: heap-use-after-free (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe7dfe1) [line number]: addr2line -e ./busybox_unstripped 0xe7dfe1 .../busybox-1_36_1/editors/awk.c:1064 Best wishes, Zclin -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:44:10 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:44:10 +0000 Subject: [Bug 15871] [busybox 1.36.1] use-after-free in awk In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15871 --- Comment #1 from zclin --- Created attachment 9673 --> https://bugs.busybox.net/attachment.cgi?id=9673&action=edit POC file -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:44:30 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:44:30 +0000 Subject: [Bug 15871] [busybox 1.36.1] use-after-free in awk In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15871 --- Comment #2 from zclin --- Created attachment 9676 --> https://bugs.busybox.net/attachment.cgi?id=9676&action=edit awk_t1_input file -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:52:41 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:52:41 +0000 Subject: [Bug 15874] New: [busybox 1.36.1] heap-buffer-overflow in awk Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15874 Bug ID: 15874 Summary: [busybox 1.36.1] heap-buffer-overflow in awk Product: Busybox Version: unspecified Hardware: All OS: Linux Status: NEW Severity: normal Priority: P5 Component: Other Assignee: unassigned at busybox.net Reporter: zclin21 at gmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Created attachment 9679 --> https://bugs.busybox.net/attachment.cgi?id=9679&action=edit POC file Hi, busybox developers, We found a heap-buffer-overflow vulnerability in awk applet of busybox v1.36.1. The affected component is awk.c:1159 in next_token function . Following is the reproduction process, and we put the poc file in the attachment. [1.] Environment Ubuntu 18.04, 64 bit BusyBox 1.36.1 Clang 6.0.0 [2.] Compilation 2.1 Modify the Makefile: HOSTCC=clang -fsanitize=address HOSTCXX=clang++ -fsanitize=address CC=clang CFLAGS=-fsanitize=address CPPFLAGS=-fsanitize=address LDFLAGS="-Wl,--allow-multiple-definition" 2.2 Modify the Config.in file, switch the following configs to y? DEBUG: y DEBUG_PESSIMIZE: y FEATURE_CLEAN_UP: y DEBUG_SANITIZE: y 2.3 Commands for compilation: export ASAN_OPTIONS=detect_leaks=0 make defconfig make install [3.] Reproduction export ASAN_OPTIONS="abort_on_error=1 symbolize=0" ./busybox_unstripped awk -f $poc ./awk_t1_input [ASAN report]: ==10929==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x61a000000ba5 at pc 0x000000e6691b bp 0x7fff4af4e230 sp 0x7fff4af4e228 READ of size 1 at 0x61a000000ba5 thread T0 #0 0xe6691a (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe6691a) #1 0xe6d817 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe6d817) #2 0xe7986d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe7986d) #3 0xe75823 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe75823) #4 0xe6b167 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe6b167) #5 0xe46ab3 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe46ab3) #6 0xe3d914 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe3d914) #7 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) #8 0x50dbaf (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50dbaf) #9 0x51036d (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x51036d) #10 0x50db58 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50db58) #11 0x50c3fd (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50c3fd) #12 0x7f1318f69c86 (/lib/x86_64-linux-gnu/libc.so.6+0x21c86) #13 0x41e459 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x41e459) 0x61a000000ba5 is located 0 bytes to the right of 1317-byte region [0x61a000000680,0x61a000000ba5) allocated by thread T0 here: #0 0x4dcb50 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x4dcb50) #1 0x519e6c (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x519e6c) #2 0x1015741 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x1015741) #3 0x50ac81 (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0x50ac81) SUMMARY: AddressSanitizer: heap-buffer-overflow (/home/zclin/afl-vul-score/llvm_mode/research/path-collect-all-new-0524/path-collect-all-new/busybox/reproduce/busybox-1_36_1/fuzz_check/awk/busybox_unstripped+0xe6691a) [line number]: addr2line -e ./busybox_unstripped 0xe6691a .../busybox-1_36_1/editors/awk.c:1159 Best wishes, Zclin -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Thu Nov 23 04:52:56 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Thu, 23 Nov 2023 04:52:56 +0000 Subject: [Bug 15874] [busybox 1.36.1] heap-buffer-overflow in awk In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15874 --- Comment #1 from zclin --- Created attachment 9682 --> https://bugs.busybox.net/attachment.cgi?id=9682&action=edit awk_t1_input file -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Sun Nov 26 19:26:05 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Sun, 26 Nov 2023 19:26:05 +0000 Subject: [Bug 15877] New: syslogd, feature proposal - add hostname when sending logs to remote server Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15877 Bug ID: 15877 Summary: syslogd, feature proposal - add hostname when sending logs to remote server Product: Busybox Version: unspecified Hardware: Other OS: Linux Status: NEW Severity: enhancement Priority: P5 Component: Networking Assignee: unassigned at busybox.net Reporter: hmilenkovic at protonmail.com CC: busybox-cvs at busybox.net Target Milestone: --- Hi everyone. I am using syslogd within BusyBox on ddwrt router. Version 1.36.1. I don't know who is maintainer or developer of syslogd so I am writing to you. Is it possible to add and option to syslogd client to send hostname (name of router) when sending logs to remote server. This is usefull when you have more than one router sending logs to the same server, and this way logs can be identified (from which router they were sended). I realized this when I started to use OpenWRT. OpenWRT syslog client sends router hostname to remote server... but they use different syslog client. On ddwrt syslogd is running from cmd line like this: syslogd -Z -L -R logs.papertrailapp.com:59352 with no conf file. I get this when I print options: ~ # syslogd --help BusyBox v1.36.1 (2023-11-25 06:36:05 +06) multi-call binary. Usage: syslogd [OPTIONS] System logging utility (this version of syslogd ignores /etc/syslog.conf) -n Run in foreground -Z Adjust incoming UTC times to local time -R HOST[:PORT] Log to HOST:PORT (default PORT:514) -L Log locally and via network (default is network only if -R) -C[size_kb] Log to shared mem buffer (use logread to read it) -O FILE Log to FILE (default: /var/log/messages, stdout if -) -s SIZE Max size (KB) before rotation (default 200KB, 0=off) -b N N rotated logs to keep (default 1, max 99, 0=purge) -l N Log only messages more urgent than prio N (1-8) -S Smaller output -t Strip client-generated timestamps ~ # on remote server (papertrailapp.com) I see just my public IP from ddwrt router but on OpenWRT I se router name (r8000)... Thanks in advance... -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Mon Nov 27 09:54:30 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Mon, 27 Nov 2023 09:54:30 +0000 Subject: [Bug 15877] syslogd, feature proposal - add hostname when sending logs to remote server In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15877 --- Comment #1 from hmilenkovic at protonmail.com --- If I understand right, manpage of syslogd https://linux.die.net/man/8/syslogd option "-I" should be added... -- You are receiving this mail because: You are on the CC list for the bug. From bugzilla at busybox.net Mon Nov 27 14:49:14 2023 From: bugzilla at busybox.net (bugzilla at busybox.net) Date: Mon, 27 Nov 2023 14:49:14 +0000 Subject: [Bug 15670] modprobe applet doesn't work properly In-Reply-To: References: Message-ID: https://bugs.busybox.net/show_bug.cgi?id=15670 Ivan Castell changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #1 from Ivan Castell --- The problem was related with a built-int kernel module with exactly the same name as external kernel module "lcd.ko". As internal built-in kernel module was already loaded, the external kernel module with exactly the same name was not loaded again. We could fix this just renaming the kernel module lcd.ko to lcd-2.ko and executing depmod -a. After that, modprobe applet worked as expected. So, this ticket can be closed as fixed. The problem is not related with busybox. In fact, busybox was working fine and doing the expected. Thank you so much for your work with this fantastic tool! -- You are receiving this mail because: You are on the CC list for the bug.