From: Denis Vlasenko Date: Mon, 10 Sep 2007 17:17:01 +0000 (-0000) Subject: run_shell: code shrink for selinux X-Git-Tag: 1_8_0~188 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=976690afe0b376c580dd2756e6d8eafe1317a011;p=oweals%2Fbusybox.git run_shell: code shrink for selinux --- diff --git a/libbb/run_shell.c b/libbb/run_shell.c index 25d55dd63..b2b4216f4 100644 --- a/libbb/run_shell.c +++ b/libbb/run_shell.c @@ -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(¤t_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);