]> granicus.if.org Git - sudo/commitdiff
Use the SET, CLR and ISSET macros.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 29 Jan 2004 22:33:54 +0000 (22:33 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 29 Jan 2004 22:33:54 +0000 (22:33 +0000)
defaults.c
env.c

index 38394a5b948f9817e61f7ca660f83f7ac400d2bb..dea65d63cba5907324deb16a9e7c7b24efe020b5 100644 (file)
@@ -279,13 +279,13 @@ set_default(var, val, op)
        case T_STR:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
-               if (!(cur->type & T_BOOL) || op != FALSE) {
+               if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
                    warnx("no value specified for `%s' on line %d",
                        var, sudolineno);
                    return(FALSE);
                }
            }
-           if ((cur->type & T_PATH) && val && *val != '/') {
+           if (ISSET(cur->type, T_PATH) && val && *val != '/') {
                warnx("values for `%s' must start with a '/'", var);
                return(FALSE);
            }
@@ -297,7 +297,7 @@ set_default(var, val, op)
        case T_INT:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
-               if (!(cur->type & T_BOOL) || op != FALSE) {
+               if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
                    warnx("no value specified for `%s' on line %d",
                        var, sudolineno);
                    return(FALSE);
@@ -311,7 +311,7 @@ set_default(var, val, op)
        case T_UINT:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
-               if (!(cur->type & T_BOOL) || op != FALSE) {
+               if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
                    warnx("no value specified for `%s' on line %d",
                        var, sudolineno);
                    return(FALSE);
@@ -325,7 +325,7 @@ set_default(var, val, op)
        case T_MODE:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
-               if (!(cur->type & T_BOOL) || op != FALSE) {
+               if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
                    warnx("no value specified for `%s' on line %d",
                        var, sudolineno);
                    return(FALSE);
@@ -351,7 +351,7 @@ set_default(var, val, op)
        case T_LIST:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
-               if (!(cur->type & T_BOOL) || op != FALSE) {
+               if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
                    warnx("no value specified for `%s' on line %d",
                        var, sudolineno);
                    return(FALSE);
@@ -365,7 +365,7 @@ set_default(var, val, op)
        case T_TUPLE:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
-               if (!(cur->type & T_BOOL) || op != FALSE) {
+               if (!ISSET(cur->type, T_BOOL) || op != FALSE) {
                    warnx("no value specified for `%s' on line %d",
                        var, sudolineno);
                    return(FALSE);
diff --git a/env.c b/env.c
index eda955053e1d3e4659de01be0c667dc90b60841e..e4a5197a1c7ccd4a54f6f5bc5ef065f24b663e0f 100644 (file)
--- a/env.c
+++ b/env.c
@@ -357,30 +357,30 @@ rebuild_env(envp, sudo_mode, noexec)
                switch (**ep) {
                    case 'H':
                        if (strncmp(*ep, "HOME=", 5) == 0)
-                           didvar |= DID_HOME;
+                           SET(didvar, DID_HOME);
                        break;
                    case 'S':
                        if (strncmp(*ep, "SHELL=", 6) == 0)
-                           didvar |= DID_SHELL;
+                           SET(didvar, DID_SHELL);
                        break;
                    case 'L':
                        if (strncmp(*ep, "LOGNAME=", 8) == 0)
-                           didvar |= DID_LOGNAME;
+                           SET(didvar, DID_LOGNAME);
                        break;
                    case 'U':
                        if (strncmp(*ep, "USER=", 5) == 0)
-                           didvar |= DID_USER;
+                           SET(didvar, DID_USER);
                        break;
                }
                insert_env(*ep, 0);
            } else {
                /* Preserve TERM and PATH, ignore anything else. */
-               if (!(didvar & DID_TERM) && !strncmp(*ep, "TERM=", 5)) {
+               if (!ISSET(didvar, DID_TERM) && strncmp(*ep, "TERM=", 5) == 0) {
                    insert_env(*ep, 0);
-                   didvar |= DID_TERM;
-               } else if (!(didvar & DID_PATH) && !strncmp(*ep, "PATH=", 5)) {
+                   SET(didvar, DID_TERM);
+               } else if (!ISSET(didvar, DID_PATH) && strncmp(*ep, "PATH=", 5) == 0) {
                    insert_env(*ep, 0);
-                   didvar |= DID_PATH;
+                   SET(didvar, DID_PATH);
                }
            }
        }
@@ -390,19 +390,19 @@ rebuild_env(envp, sudo_mode, noexec)
         * otherwise they may be from the user's environment (depends
         * on sudoers options).
         */
-       if (sudo_mode & MODE_LOGIN_SHELL) {
+       if (ISSET(sudo_mode, MODE_LOGIN_SHELL)) {
            insert_env(format_env("HOME", runas_pw->pw_dir, VNULL), 0);
            insert_env(format_env("SHELL", runas_pw->pw_shell, VNULL), 0);
            insert_env(format_env("LOGNAME", runas_pw->pw_name, VNULL), 0);
            insert_env(format_env("USER", runas_pw->pw_name, VNULL), 0);
        } else {
-           if (!(didvar & DID_HOME))
+           if (!ISSET(didvar, DID_HOME))
                insert_env(format_env("HOME", user_dir, VNULL), 0);
-           if (!(didvar & DID_SHELL))
+           if (!ISSET(didvar, DID_SHELL))
                insert_env(format_env("SHELL", sudo_user.pw->pw_shell, VNULL), 0);
-           if (!(didvar & DID_LOGNAME))
+           if (!ISSET(didvar, DID_LOGNAME))
                insert_env(format_env("LOGNAME", user_name, VNULL), 0);
-           if (!(didvar & DID_USER))
+           if (!ISSET(didvar, DID_USER))
                insert_env(format_env("USER", user_name, VNULL), 0);
        }
     } else {
@@ -448,17 +448,17 @@ rebuild_env(envp, sudo_mode, noexec)
                if (strncmp(*ep, "SUDO_PS1=", 9) == 0)
                    ps1 = *ep + 5;
                else if (strncmp(*ep, "PATH=", 5) == 0)
-                   didvar |= DID_PATH;
+                   SET(didvar, DID_PATH);
                else if (strncmp(*ep, "TERM=", 5) == 0)
-                   didvar |= DID_TERM;
+                   SET(didvar, DID_TERM);
                insert_env(*ep, 0);
            }
        }
     }
     /* Provide default values for $TERM and $PATH if they are not set. */
-    if (!(didvar & DID_TERM))
+    if (!ISSET(didvar, DID_TERM))
        insert_env("TERM=unknown", 0);
-    if (!(didvar & DID_PATH))
+    if (!ISSET(didvar, DID_PATH))
        insert_env(format_env("PATH", _PATH_DEFPATH, VNULL), 0);
 
 #ifdef SECURE_PATH
@@ -473,7 +473,7 @@ rebuild_env(envp, sudo_mode, noexec)
     }
 
     /* Set $HOME for `sudo -H'.  Only valid at PERM_FULL_RUNAS. */
-    if ((sudo_mode & MODE_RESET_HOME) && runas_pw->pw_dir)
+    if (ISSET(sudo_mode, MODE_RESET_HOME) && runas_pw->pw_dir)
        insert_env(format_env("HOME", runas_pw->pw_dir, VNULL), 1);
 
     /*