setserial: make it NOEXEC
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Aug 2017 16:06:46 +0000 (18:06 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 6 Aug 2017 16:06:46 +0000 (18:06 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
NOFORK_NOEXEC.lst
miscutils/setserial.c

index 3bd82aa603116b6be1ac4b6d8cf13fb898bd33d6..30690af61fa80534378dfd60eeae8a13e828baa6 100644 (file)
@@ -310,7 +310,7 @@ setfont
 setkeycodes
 setlogcons
 setpriv - spawner, changes state, let's play safe and not be noexec
-setserial
+setserial - noexec
 setsid - spawner, uses fork_or_rexec() [not audited to work in noexec], let's play safe and not be noexec
 setuidgid - noexec. spawner
 sha1sum - noexec. runner
index a4d59f898cfb924dcd889dff2c800962f7f4ff93..2000de7b17e530a183f56d1d28fd5cddac0f1928 100644 (file)
@@ -15,7 +15,7 @@
 //config:      help
 //config:      Retrieve or set Linux serial port.
 
-//applet:IF_SETSERIAL(APPLET(setserial, BB_DIR_BIN, BB_SUID_DROP))
+//applet:IF_SETSERIAL(APPLET_NOEXEC(setserial, setserial, BB_DIR_BIN, BB_SUID_DROP, setserial))
 
 //kbuild:lib-$(CONFIG_SETSERIAL) += setserial.o
 
@@ -746,14 +746,15 @@ int setserial_main(int argc UNUSED_PARAM, char **argv)
        opts = getopt32(argv, "bGavzgq");
        argv += optind;
 
-       if (!argv[1]) /* one arg only? */
-               opts |= OPT_LIST_OF_DEVS;
+       if (!argv[1]) /* one arg only? (nothing to change?) */
+               opts |= OPT_LIST_OF_DEVS; /* force display */
 
        if (!(opts & OPT_LIST_OF_DEVS)) {
                serial_set(argv, opts);
                argv[1] = NULL;
        }
 
+       /* -v effect: "after setting params, do not be silent, show them" */
        if (opts & (OPT_VERBOSE | OPT_LIST_OF_DEVS)) {
                do {
                        serial_get(*argv, opts & OPT_MODE_MASK);