hush: forgot to emit error on (failing) second "readonly VAR=VAL"
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 17 Jul 2017 19:31:17 +0000 (21:31 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 17 Jul 2017 19:31:17 +0000 (21:31 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/hush.c

index 2125e757d82dbafcd5b9d295b3782960ab9509a5..1961c9830174b3e4c50369a1e181331ba8559421 100644 (file)
@@ -2074,6 +2074,7 @@ static int set_local_var(char *str,
        char *eq_sign;
        int name_len;
 
+       //bb_error_msg("set_local_var('%s',%d,%d,%d)", str, flg_export, local_lvl, flg_read_only);
        eq_sign = strchr(str, '=');
        if (!eq_sign) { /* not expected to ever happen? */
                free(str);
@@ -2090,8 +2091,7 @@ static int set_local_var(char *str,
 
                /* We found an existing var with this name */
                if (cur->flg_read_only) {
-                       if (!flg_read_only)
-                               bb_error_msg("%s: readonly variable", str);
+                       bb_error_msg("%s: readonly variable", str);
                        free(str);
                        return -1;
                }
@@ -9459,7 +9459,6 @@ static int FAST_FUNC builtin_readonly(char **argv)
 }
 #endif
 
-
 #if ENABLE_HUSH_UNSET
 /* http://www.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#unset */
 static int FAST_FUNC builtin_unset(char **argv)