modutils: make them NOEXEC except depmod
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 4 Aug 2017 00:56:39 +0000 (02:56 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 4 Aug 2017 00:56:39 +0000 (02:56 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
NOFORK_NOEXEC.lst
modutils/insmod.c
modutils/lsmod.c
modutils/modinfo.c
modutils/modprobe-small.c
modutils/modprobe.c
modutils/rmmod.c

index 9fcef7823adf8cf54d1da24971fd35f5f202641f..12ae1cd556f8a07a5caf0940c3a07e280b5fa811 100644 (file)
@@ -156,7 +156,7 @@ ifplugd - daemon
 inetd - daemon
 init - daemon
 inotifyd - daemon
-insmod
+insmod - noexec
 install - runner
 ionice - spawner
 iostat - runner
@@ -193,7 +193,7 @@ lpq - runner
 lpr - runner
 ls - noexec. runner
 lsattr
-lsmod
+lsmod - noexec
 lsof - complex
 lspci
 lsscsi
@@ -220,8 +220,8 @@ mknod - noexec
 mkpasswd
 mkswap
 mktemp
-modinfo
-modprobe
+modinfo - noexec
+modprobe - noexec
 more - interactive
 mount - suid
 mountpoint
@@ -277,7 +277,7 @@ resize - noexec. changes state (signal handlers)
 rev - runner
 rm - noexec. rm -i interactive
 rmdir - NOFORK
-rmmod
+rmmod - noexec
 route
 rpm - runner
 rpm2cpio - runner
index b8ede8a811e2ec5d2e631e28fde2d6291bf26fc1..4dc0b6608d08de5cbdbcef6394029a8dfd6a04b5 100644 (file)
@@ -13,7 +13,7 @@
 //config:      help
 //config:      insmod is used to load specified modules in the running kernel.
 
-//applet:IF_INSMOD(IF_NOT_MODPROBE_SMALL(APPLET(insmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//applet:IF_INSMOD(IF_NOT_MODPROBE_SMALL(APPLET_NOEXEC(insmod, insmod, BB_DIR_SBIN, BB_SUID_DROP, insmod)))
 
 //kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_INSMOD) += insmod.o modutils.o
index 4bf8f8481e3475966d999c89f458835c27e3cb38..84860cd790cabf31dcfc610856b61f7e7fff6457 100644 (file)
@@ -23,7 +23,7 @@
 //config:      the format of module-init-tools for Linux kernel 2.6.
 //config:      Increases size somewhat.
 
-//applet:IF_LSMOD(IF_NOT_MODPROBE_SMALL(APPLET(lsmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//applet:IF_LSMOD(IF_NOT_MODPROBE_SMALL(APPLET_NOEXEC(lsmod, lsmod, BB_DIR_SBIN, BB_SUID_DROP, lsmod)))
 
 //kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_LSMOD) += lsmod.o modutils.o
index 371c93991bccb2a4312e5b4e77a233cceadf3875..0f1d3ee475a75662bf59c8bba403eeb0bc0b49fd 100644 (file)
@@ -12,7 +12,7 @@
 //config:      help
 //config:      Show information about a Linux Kernel module
 
-//applet:IF_MODINFO(APPLET(modinfo, BB_DIR_SBIN, BB_SUID_DROP))
+//applet:IF_MODINFO(APPLET_NOEXEC(modinfo, modinfo, BB_DIR_SBIN, BB_SUID_DROP, modinfo))
 
 //kbuild:lib-$(CONFIG_MODINFO) += modinfo.o modutils.o
 
index 053a7df896611ae43f4a3beec7e7cdcd3bc26723..cd4f554f335af91297de172d6a5b31d084aab645 100644 (file)
 /* modprobe-small configs are defined in Config.src to ensure better
  * "make config" order */
 
-//applet:IF_LSMOD(   IF_MODPROBE_SMALL(APPLET(lsmod,    BB_DIR_SBIN, BB_SUID_DROP)))
-//applet:IF_MODPROBE(IF_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
-//                                   APPLET_ODDNAME:name    main      location     suid_type     help
-//applet:IF_DEPMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, depmod)))
-//applet:IF_INSMOD(IF_MODPROBE_SMALL(APPLET_ODDNAME(insmod, modprobe, BB_DIR_SBIN, BB_SUID_DROP, insmod)))
-//applet:IF_RMMOD( IF_MODPROBE_SMALL(APPLET_ODDNAME(rmmod,  modprobe, BB_DIR_SBIN, BB_SUID_DROP, rmmod)))
+//applet:IF_LSMOD(   IF_MODPROBE_SMALL(APPLET_NOEXEC( lsmod,    lsmod,    BB_DIR_SBIN, BB_SUID_DROP, lsmod   )))
+//applet:IF_MODPROBE(IF_MODPROBE_SMALL(APPLET_NOEXEC( modprobe, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe)))
+//                                     APPLET_ODDNAME:name      main      location     suid_type     help
+//applet:IF_DEPMOD(  IF_MODPROBE_SMALL(APPLET_ODDNAME(depmod,   modprobe, BB_DIR_SBIN, BB_SUID_DROP, depmod  )))
+//applet:IF_INSMOD(  IF_MODPROBE_SMALL(APPLET_NOEXEC( insmod,   modprobe, BB_DIR_SBIN, BB_SUID_DROP, insmod  )))
+//applet:IF_RMMOD(   IF_MODPROBE_SMALL(APPLET_NOEXEC( rmmod,    modprobe, BB_DIR_SBIN, BB_SUID_DROP, rmmod   )))
+/* noexec speeds up boot with many modules loaded (need SH_STANDALONE=y) */
+/* I measured about ~5 times faster insmod */
+/* depmod is not noexec, it runs longer and benefits from memory trimming via exec */
 
 //kbuild:lib-$(CONFIG_MODPROBE_SMALL) += modprobe-small.o
 
index 1a7db09f2b17d3acb69e56d7ec97334dff171ffe..e899935c4eb164f8ca769c15b636a835d8120e37 100644 (file)
@@ -26,7 +26,7 @@
 //config:      hardware autodetection scripts to load modules like evdev, frame
 //config:      buffer drivers etc.
 
-//applet:IF_MODPROBE(IF_NOT_MODPROBE_SMALL(APPLET(modprobe, BB_DIR_SBIN, BB_SUID_DROP)))
+//applet:IF_MODPROBE(IF_NOT_MODPROBE_SMALL(APPLET_NOEXEC(modprobe, modprobe, BB_DIR_SBIN, BB_SUID_DROP, modprobe)))
 
 //kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_MODPROBE) += modprobe.o modutils.o
index d60e494137a69b95384ab1a4bdcc07954b97607e..df50e58afe4be1f6c4639ecedecc36c443131cd3 100644 (file)
@@ -14,7 +14,7 @@
 //config:      help
 //config:      rmmod is used to unload specified modules from the kernel.
 
-//applet:IF_RMMOD(IF_NOT_MODPROBE_SMALL(APPLET(rmmod, BB_DIR_SBIN, BB_SUID_DROP)))
+//applet:IF_RMMOD(IF_NOT_MODPROBE_SMALL(APPLET_NOEXEC(rmmod, rmmod, BB_DIR_SBIN, BB_SUID_DROP, rmmod)))
 
 //kbuild:ifneq ($(CONFIG_MODPROBE_SMALL),y)
 //kbuild:lib-$(CONFIG_RMMOD) += rmmod.o modutils.o