From 75d8660d99f1b5b5da471569955ffce9a27e8702 Mon Sep 17 00:00:00 2001 From: Ubaldo Porcheddu Date: Sat, 20 Feb 2016 22:18:37 +0000 Subject: Replaced any occurence of /bin/sh with _PATH_BSHELL to allow easier portability on system with default shell on a different directory, like for instance on android. Signed-off-by: Ubaldo Porcheddu --- libc/stdio/popen.c | 3 ++- libc/stdlib/system.c | 7 ++++--- libc/unistd/exec.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libc/stdio/popen.c b/libc/stdio/popen.c index e1b1d4038..1efbd3b7a 100644 --- a/libc/stdio/popen.c +++ b/libc/stdio/popen.c @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -91,7 +92,7 @@ FILE *popen(const char *command, const char *modes) close(po->f->__filedes); } - execl("/bin/sh", "sh", "-c", command, (char *)0); + execl(_PATH_BSHELL, "sh", "-c", command, (char *)0); /* SUSv3 mandates an exit code of 127 for the child if the * command interpreter can not be invoked. */ diff --git a/libc/stdlib/system.c b/libc/stdlib/system.c index 8a6734db7..771c30e3f 100644 --- a/libc/stdlib/system.c +++ b/libc/stdlib/system.c @@ -11,6 +11,7 @@ #include #include #include +#include #ifdef __UCLIBC_HAS_THREADS_NATIVE__ #include #include @@ -50,7 +51,7 @@ int __libc_system(const char *command) sigaction(SIGINT, &save_int, NULL); sigprocmask(SIG_SETMASK, &save_mask, NULL); - execl("/bin/sh", "sh", "-c", command, (char *) 0); + execl(_PATH_BSHELL, "sh", "-c", command, (char *) 0); _exit(127); } @@ -169,7 +170,7 @@ do_system (const char *line) { /* Child side. */ const char *new_argv[4]; - new_argv[0] = "/bin/sh"; + new_argv[0] = _PATH_BSHELL; new_argv[1] = "-c"; new_argv[2] = line; new_argv[3] = NULL; @@ -181,7 +182,7 @@ do_system (const char *line) INIT_LOCK (); /* Exec the shell. */ - (void) execve ("/bin/sh", (char *const *) new_argv, __environ); + (void) execve (_PATH_BSHELL, (char *const *) new_argv, __environ); _exit (127); } else if (pid < (pid_t) 0) diff --git a/libc/unistd/exec.c b/libc/unistd/exec.c index 8fa42e586..9be856d4f 100644 --- a/libc/unistd/exec.c +++ b/libc/unistd/exec.c @@ -20,6 +20,7 @@ #include #include +#include #include #include #include @@ -273,9 +274,9 @@ int execvpe(const char *path, char *const argv[], char *const envp[]) nargv[1] = (char *)path; memcpy(nargv+2, argv+1, n*sizeof(char *)); #if defined (L_execvp) - execve("/bin/sh", nargv, __environ); + execve(_PATH_BSHELL, nargv, __environ); #elif defined (L_execvpe) - execve("/bin/sh", nargv, envp); + execve(_PATH_BSHELL, nargv, envp); #endif EXEC_FREE(nargv, size2); } -- cgit v1.2.3