Signed-off-by: Donald Sharp <[email protected]>
---
 watchquagga/watchquagga.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/watchquagga/watchquagga.c b/watchquagga/watchquagga.c
index ca05361..93d963f 100644
--- a/watchquagga/watchquagga.c
+++ b/watchquagga/watchquagga.c
@@ -345,8 +345,11 @@ run_background(const char *shell_cmd)
       if (setpgid(0,0) < 0)
         zlog_warn("warning: setpgid(0,0) failed: %s",safe_strerror(errno));
       {
-        const char *argv[4] = { "sh", "-c", shell_cmd, NULL};
-       execv("/bin/sh",(char *const *)argv);
+       char *shell = strdup("sh");
+       char *dashc = strdup("-c");
+       char *scmd  = strdup(shell_cmd);
+        char *const argv[4] = { shell, dashc, scmd, NULL};
+       execv("/bin/sh", argv);
        zlog_err("execv(/bin/sh -c '%s') failed: %s",
                 shell_cmd,safe_strerror(errno));
        _exit(127);
-- 
1.7.10.4


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to