Ignore:
Timestamp:
Nov 4, 2007, 3:16:40 AM (16 years ago)
Author:
Bruno Cornec
Message:

Update to busybox 1.7.2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.5/mindi-busybox/libbb/run_shell.c

    r821 r1765  
    2929 */
    3030
    31 #include <stdio.h>
    32 #include <errno.h>
    33 #include <unistd.h>
    34 #include <string.h>
    35 #include <stdlib.h>
    36 #include <syslog.h>
    37 #include <ctype.h>
    3831#include "libbb.h"
    39 #ifdef CONFIG_SELINUX
     32#if ENABLE_SELINUX
    4033#include <selinux/selinux.h>  /* for setexeccon  */
    4134#endif
    4235
    43 #ifdef CONFIG_SELINUX
    44 static security_context_t current_sid=NULL;
     36#if ENABLE_SELINUX
     37static security_context_t current_sid;
    4538
    4639void
    4740renew_current_security_context(void)
    4841{
    49   if  (current_sid)
    50     freecon(current_sid);  /* Release old context  */
    51 
    52   getcon(&current_sid);  /* update */
    53 
    54   return;
     42    if (current_sid)
     43        freecon(current_sid);  /* Release old context  */
     44    getcon(&current_sid);  /* update */
    5545}
    5646void
    5747set_current_security_context(security_context_t sid)
    5848{
    59   if  (current_sid)
    60     freecon(current_sid);  /* Release old context  */
    61 
    62   current_sid=sid;
    63 
    64   return;
     49    if (current_sid)
     50        freecon(current_sid);  /* Release old context  */
     51    current_sid = sid;
    6552}
    6653
     
    7259   arguments.  */
    7360
    74 void run_shell ( const char *shell, int loginshell, const char *command, const char **additional_args)
     61void run_shell(const char *shell, int loginshell, const char *command, const char **additional_args)
    7562{
    7663    const char **args;
     
    7865    int additional_args_cnt = 0;
    7966
    80     for ( args = additional_args; args && *args; args++ )
     67    for (args = additional_args; args && *args; args++)
    8168        additional_args_cnt++;
    8269
    83         args = (const char **) xmalloc (sizeof (char *) * ( 4  + additional_args_cnt ));
     70    args = xmalloc(sizeof(char*) * (4 + additional_args_cnt));
    8471
    85     args [0] = bb_get_last_path_component ( bb_xstrdup ( shell ));
     72    args[0] = bb_get_last_path_component(xstrdup(shell));
    8673
    87     if ( loginshell )
    88         args [0] = bb_xasprintf ("-%s", args [0]);
     74    if (loginshell)
     75        args[0] = xasprintf("-%s", args[0]);
    8976
    90     if ( command ) {
    91         args [argno++] = "-c";
    92         args [argno++] = command;
     77    if (command) {
     78        args[argno++] = "-c";
     79        args[argno++] = command;
    9380    }
    94     if ( additional_args ) {
    95         for ( ; *additional_args; ++additional_args )
    96             args [argno++] = *additional_args;
     81    if (additional_args) {
     82        for (; *additional_args; ++additional_args)
     83            args[argno++] = *additional_args;
    9784    }
    98     args [argno] = 0;
    99 #ifdef CONFIG_SELINUX
    100     if ( (current_sid) && (!setexeccon(current_sid)) ) {
    101         freecon(current_sid);
    102         execve(shell, (char **) args, environ);
     85    args[argno] = NULL;
     86#if ENABLE_SELINUX
     87    if (current_sid && !setexeccon(current_sid)) {
     88        freecon(current_sid);
     89        execve(shell, (char **) args, environ);
    10390    } else
    10491#endif
    105       execv ( shell, (char **) args );
    106     bb_perror_msg_and_die ( "cannot run %s", shell );
     92    execv(shell, (char **) args);
     93    bb_perror_msg_and_die("cannot run %s", shell);
    10794}
Note: See TracChangeset for help on using the changeset viewer.