diff options
-rw-r--r-- | NOFORK_NOEXEC.lst | 2 | ||||
-rw-r--r-- | util-linux/pivot_root.c | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/NOFORK_NOEXEC.lst b/NOFORK_NOEXEC.lst index 0e1fb1f55..2fc280596 100644 --- a/NOFORK_NOEXEC.lst +++ b/NOFORK_NOEXEC.lst | |||
@@ -261,7 +261,7 @@ pidof - nofork candidate(uses find_pid_by_name, is that ok?) | |||
261 | ping - suid, runner | 261 | ping - suid, runner |
262 | ping6 - suid, runner | 262 | ping6 - suid, runner |
263 | pipe_progress - longterm | 263 | pipe_progress - longterm |
264 | pivot_root - nofork candidate? the code is trivial | 264 | pivot_root - NOFORK |
265 | pkill - nofork candidate(xregcomp, procps_scan - are they ok?) | 265 | pkill - nofork candidate(xregcomp, procps_scan - are they ok?) |
266 | pmap - noexec candidate, leaks: open+xstrdup | 266 | pmap - noexec candidate, leaks: open+xstrdup |
267 | popmaildir - runner | 267 | popmaildir - runner |
diff --git a/util-linux/pivot_root.c b/util-linux/pivot_root.c index 331038057..d6a26b912 100644 --- a/util-linux/pivot_root.c +++ b/util-linux/pivot_root.c | |||
@@ -21,7 +21,7 @@ | |||
21 | //config: Note: This is for initrd in linux 2.4. Under initramfs (introduced | 21 | //config: Note: This is for initrd in linux 2.4. Under initramfs (introduced |
22 | //config: in linux 2.6) use switch_root instead. | 22 | //config: in linux 2.6) use switch_root instead. |
23 | 23 | ||
24 | //applet:IF_PIVOT_ROOT(APPLET(pivot_root, BB_DIR_SBIN, BB_SUID_DROP)) | 24 | //applet:IF_PIVOT_ROOT(APPLET_NOFORK(pivot_root, pivot_root, BB_DIR_SBIN, BB_SUID_DROP, pivot_root)) |
25 | 25 | ||
26 | //kbuild:lib-$(CONFIG_PIVOT_ROOT) += pivot_root.o | 26 | //kbuild:lib-$(CONFIG_PIVOT_ROOT) += pivot_root.o |
27 | 27 | ||
@@ -33,7 +33,7 @@ | |||
33 | 33 | ||
34 | #include "libbb.h" | 34 | #include "libbb.h" |
35 | 35 | ||
36 | extern int pivot_root(const char * new_root,const char * put_old); | 36 | extern int pivot_root(const char *new_root, const char *put_old); |
37 | 37 | ||
38 | int pivot_root_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; | 38 | int pivot_root_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; |
39 | int pivot_root_main(int argc, char **argv) | 39 | int pivot_root_main(int argc, char **argv) |
@@ -41,6 +41,8 @@ int pivot_root_main(int argc, char **argv) | |||
41 | if (argc != 3) | 41 | if (argc != 3) |
42 | bb_show_usage(); | 42 | bb_show_usage(); |
43 | 43 | ||
44 | /* NOFORK applet. Hardly matters wrt performance, but code is trivial */ | ||
45 | |||
44 | if (pivot_root(argv[1], argv[2]) < 0) { | 46 | if (pivot_root(argv[1], argv[2]) < 0) { |
45 | /* prints "pivot_root: <strerror text>" */ | 47 | /* prints "pivot_root: <strerror text>" */ |
46 | bb_perror_nomsg_and_die(); | 48 | bb_perror_nomsg_and_die(); |