setlogcons: make it NOEXEC, better --help text
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Aug 2017 16:17:58 +0000 (18:17 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Aug 2017 16:17:58 +0000 (18:17 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
NOFORK_NOEXEC.lst
console-tools/setlogcons.c

index 30690af61fa80534378dfd60eeae8a13e828baa6..8145e259710ee13b9820150d36fe3bc18b48e21a 100644 (file)
@@ -308,7 +308,7 @@ setarch - noexec. spawner
 setconsole
 setfont
 setkeycodes
-setlogcons
+setlogcons - noexec
 setpriv - spawner, changes state, let's play safe and not be noexec
 setserial - noexec
 setsid - spawner, uses fork_or_rexec() [not audited to work in noexec], let's play safe and not be noexec
index 1b5814eee1815299b5b70632eb3349c124ca2cc2..6778a4d2b5e944e4e806c1e8deb64e9e265ef90d 100644 (file)
 //config:      help
 //config:      This program redirects the output console of kernel messages.
 
-//applet:IF_SETLOGCONS(APPLET(setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP))
+//applet:IF_SETLOGCONS(APPLET_NOEXEC(setlogcons, setlogcons, BB_DIR_USR_SBIN, BB_SUID_DROP, setlogcons))
 
 //kbuild:lib-$(CONFIG_SETLOGCONS) += setlogcons.o
 
 //usage:#define setlogcons_trivial_usage
 //usage:       "[N]"
 //usage:#define setlogcons_full_usage "\n\n"
-//usage:       "Redirect the kernel output to console N. Default:0 (current console)"
+//usage:       "Pin kernel output to VT console N. Default:0 (do not pin)"
+
+// Comment from kernel source:
+/* ...
+ * By default, the kernel messages are always printed on the current virtual
+ * console. However, the user may modify that default with the
+ * TIOCL_SETKMSGREDIRECT ioctl call.
+ *
+ * This function sets the kernel message console to be @new. It returns the old
+ * virtual console number. The virtual terminal number 0 (both as parameter and
+ * return value) means no redirection (i.e. always printed on the currently
+ * active console).
+ */
 
 #include "libbb.h"
 
@@ -33,8 +45,8 @@ int setlogcons_main(int argc UNUSED_PARAM, char **argv)
                char fn;
                char subarg;
        } arg = {
-               11, /* redirect kernel messages */
-               0   /* to specified console (current as default) */
+               11, /* redirect kernel messages (TIOCL_SETKMSGREDIRECT) */
+               0
        };
 
        if (argv[1])