From 0eebd3a28e968844ec459298ac36e16305cc07bb Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Sun, 26 Dec 2010 22:49:27 +0100 Subject: don't execve() a shell process but always double-fork and then exec the program directly --- action.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'action.cpp') diff --git a/action.cpp b/action.cpp index b7dfc58..352efb4 100644 --- a/action.cpp +++ b/action.cpp @@ -1976,9 +1976,11 @@ void EndpointAppPBX::action_execute(void) end_trace(); return; } +#if 0 argv[i++] = (char *)"/bin/sh"; argv[i++] = (char *)"-c"; argv[i++] = command; +#endif argv[i++] = command; if ((rparam = routeparam(e_action, PARAM_PARAM))) { argv[i++] = rparam->string_value; @@ -1999,7 +2001,7 @@ void EndpointAppPBX::action_execute(void) case 0: /* To be shure there are no zombies created double fork */ if ((pid2 = fork()) == 0) { - execve("/bin/sh", argv, environ); + execve(command, argv, environ); } else { /* Exit immediately and release the waiting parent. The subprocess falls to init because the parent died */ -- cgit v1.2.3-55-g7522