run_shell: code shrink for selinux
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 10 Sep 2007 17:17:01 +0000 (17:17 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 10 Sep 2007 17:17:01 +0000 (17:17 -0000)
libbb/run_shell.c

index 25d55dd63b407a6cc171b5e0b49e03bbb179854b..b2b4216f4bd5845045ebf9fd4dd275789e5ea9bf 100644 (file)
@@ -39,15 +39,13 @@ static security_context_t current_sid;
 void
 renew_current_security_context(void)
 {
-       if (current_sid)
-               freecon(current_sid);  /* Release old context  */
+       freecon(current_sid);  /* Release old context  */
        getcon(&current_sid);  /* update */
 }
 void
 set_current_security_context(security_context_t sid)
 {
-       if (current_sid)
-               freecon(current_sid);  /* Release old context  */
+       freecon(current_sid);  /* Release old context  */
        current_sid = sid;
 }
 
@@ -84,10 +82,10 @@ void run_shell(const char *shell, int loginshell, const char *command, const cha
        }
        args[argno] = NULL;
 #if ENABLE_SELINUX
-       if (current_sid && !setexeccon(current_sid)) {
+       if (current_sid)
+               setexeccon(current_sid);
+       if (ENABLE_FEATURE_CLEAN_UP)
                freecon(current_sid);
-               execve(shell, (char **) args, environ);
-       } else
 #endif
        execv(shell, (char **) args);
        bb_perror_msg_and_die("cannot run %s", shell);