← Commit list

83a6c8d58

Denys Vlasenko
Denys Vlasenko
2017-08-05
SUCCESS Duration: 145s

Subject

umount: make it NOEXEC

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

NOFORK_NOEXEC.lst+1 -1
@@ -378,7 +378,7 @@ udhcpc - daemon
udhcpd - daemon
udpsvd - daemon
uevent - daemon
-umount - noexec candidate, leaks: nested xmalloc
+umount - noexec. leaks: nested xmalloc
uname - NOFORK
uncompress - runner
unexpand - runner
util-linux/umount.c+12 -1
@@ -24,7 +24,18 @@
//config: help
//config: Support -a option to unmount all currently mounted filesystems.
-//applet:IF_UMOUNT(APPLET(umount, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_UMOUNT(APPLET_NOEXEC(umount, umount, BB_DIR_BIN, BB_SUID_DROP, umount))
+/*
+ * On one hand, in some weird situations you'd want umount
+ * to not do anything surprising, to behave as a usual fork+execed executable.
+ *
+ * OTOH, there can be situations where execing would not succeed, or even hang
+ * (say, if executable is on a filesystem which is in trouble and accesses to it
+ * block in kernel).
+ * In this case, you might be actually happy if your standalone bbox shell
+ * does not fork+exec, but only forks and calls umount_main() which it already has!
+ * Let's go with NOEXEC.
+ */
//kbuild:lib-$(CONFIG_UMOUNT) += umount.o