pivot_root: make it NOFORK
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 4 Aug 2017 23:51:12 +0000 (01:51 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 4 Aug 2017 23:51:12 +0000 (01:51 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
NOFORK_NOEXEC.lst
util-linux/pivot_root.c

index 0e1fb1f5590083fb640ec71cc1d5c4d12519a320..2fc2805969b3920e2719e2fd65104810e3939cf1 100644 (file)
@@ -261,7 +261,7 @@ pidof - nofork candidate(uses find_pid_by_name, is that ok?)
 ping - suid, runner
 ping6 - suid, runner
 pipe_progress - longterm
-pivot_root - nofork candidate? the code is trivial
+pivot_root - NOFORK
 pkill - nofork candidate(xregcomp, procps_scan - are they ok?)
 pmap - noexec candidate, leaks: open+xstrdup
 popmaildir - runner
index 331038057645b101c19933c8d67418830a1fd827..d6a26b9127c1a593351a0826e3aa7598813eb43e 100644 (file)
@@ -21,7 +21,7 @@
 //config:      Note: This is for initrd in linux 2.4. Under initramfs (introduced
 //config:      in linux 2.6) use switch_root instead.
 
-//applet:IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_PIVOT_ROOT(APPLET_NOFORK(pivot_root, pivot_root, BB_DIR_SBIN, BB_SUID_DROP, pivot_root))
 
 //kbuild:lib-$(CONFIG_PIVOT_ROOT) += pivot_root.o
 
@@ -33,7 +33,7 @@
 
 #include "libbb.h"
 
-extern int pivot_root(const char * new_root,const char * put_old);
+extern int pivot_root(const char *new_root, const char *put_old);
 
 int pivot_root_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int pivot_root_main(int argc, char **argv)
@@ -41,6 +41,8 @@ int pivot_root_main(int argc, char **argv)
        if (argc != 3)
                bb_show_usage();
 
+       /* NOFORK applet. Hardly matters wrt performance, but code is trivial */
+
        if (pivot_root(argv[1], argv[2]) < 0) {
                /* prints "pivot_root: <strerror text>" */
                bb_perror_nomsg_and_die();