46,13 → 46,13 |
#include "errors.h" |
|
/* FIXME: Just have find_command() return an allocated string */ |
char *found; |
static char *found; |
|
static char *find_command(char *); |
static unsigned int try_access(const char *); |
static int try_access(const char *); |
|
/* work-around for access() */ |
static unsigned int try_access(const char *f) |
static int try_access(const char *f) |
{ |
int fd; |
|
80,10 → 80,10 |
return (char *) cmd; |
} |
|
path_tok = cli_strdup(PATH); |
path_tok = strdup(PATH); |
|
/* Extract the PATH env to a path[] array */ |
path[n] = cli_strtok(path_tok, PATH_DELIM); |
path[n] = strtok(path_tok, PATH_DELIM); |
while (NULL != path[n]) { |
if ((strlen(path[n]) + x ) > PATH_MAX) { |
cli_error(CL_ENOTSUP, |
91,7 → 91,7 |
n, n-1); |
break; |
} |
path[++n] = cli_strtok(NULL, PATH_DELIM); |
path[++n] = strtok(NULL, PATH_DELIM); |
} |
|
/* We now have n places to look for the command */ |
114,14 → 114,14 |
task_id_t tid; |
char *tmp; |
|
tmp = cli_strdup(find_command(cmd)); |
tmp = strdup(find_command(cmd)); |
free(found); |
|
tid = task_spawn((const char *)tmp, (const char **)argv); |
tid = task_spawn((const char *)tmp, argv); |
free(tmp); |
|
if (tid == 0) { |
cli_error(CL_EEXEC, "Can not spawn %s", cmd); |
cli_error(CL_EEXEC, "Cannot spawn `%s'.", cmd); |
return 1; |
} else { |
return 0; |