sysctl: allow setting empty values
authorDenys Vlasenko <vda.linux@googlemail.com>
Fri, 8 Feb 2019 13:02:59 +0000 (14:02 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Fri, 8 Feb 2019 13:02:59 +0000 (14:02 +0100)
function                                             old     new   delta
sysctl_act_on_setting                                451     445      -6

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
procps/sysctl.c

index 5fa7646d1af8390cf87bc1078a82ed01a0f8ea9b..42de374d2b9b956f583fcc4350a050549a2805f4 100644 (file)
@@ -119,14 +119,16 @@ static int sysctl_act_on_setting(char *setting)
        if (cptr)
                writing = 1;
        if (writing) {
-               if (cptr == NULL) {
+               if (!cptr) {
                        bb_error_msg("error: '%s' must be of the form name=value",
                                outname);
                        retval = EXIT_FAILURE;
                        goto end;
                }
                value = cptr + 1;  /* point to the value in name=value */
-               if (setting == cptr || !*value) {
+               if (setting == cptr /* "name" can't be empty */
+                /* || !*value - WRONG: "sysctl net.ipv4.ip_local_reserved_ports=" is a valid syntax (clears the value) */
+               ) {
                        bb_error_msg("error: malformed setting '%s'", outname);
                        retval = EXIT_FAILURE;
                        goto end;