diff options
Diffstat (limited to 'source3/lib/smbrun.c')
-rw-r--r-- | source3/lib/smbrun.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source3/lib/smbrun.c b/source3/lib/smbrun.c index 31990713b8..fdccd9ec97 100644 --- a/source3/lib/smbrun.c +++ b/source3/lib/smbrun.c @@ -183,11 +183,17 @@ static int smbrun_internal(const char *cmd, int *outfd, bool sanitize) #endif { - const char *newcmd = sanitize ? escape_shell_string(cmd) : cmd; - if (!newcmd) { - exit(82); + char *newcmd = NULL; + if (sanitize) { + newcmd = escape_shell_string(cmd); + if (!newcmd) + exit(82); } - execl("/bin/sh","sh","-c",newcmd,NULL); + + execl("/bin/sh","sh","-c", + newcmd ? (const char *)newcmd : cmd, NULL); + + SAFE_FREE(newcmd); } /* not reached */ |