From: Wayne Davison Date: Mon, 14 Dec 2009 03:28:01 +0000 (-0800) Subject: Free a strdup() in do_cmd() that checker was complaining about. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/f8e1fa627219873be6d37244dc70fbfd157f1e9c?hp=8e7f3107a4cffa09d85c40f9f6e7fe114b8b5861 Free a strdup() in do_cmd() that checker was complaining about. --- diff --git a/main.c b/main.c index ebfadd24..dec59f46 100644 --- a/main.c +++ b/main.c @@ -395,7 +395,7 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in int *f_in_p, int *f_out_p) { int i, argc = 0; - char *args[MAX_ARGS]; + char *args[MAX_ARGS], *need_to_free = NULL; pid_t pid; int dash_l_set = 0; @@ -406,7 +406,7 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in cmd = rsh_env; if (!cmd) cmd = RSYNC_RSH; - cmd = strdup(cmd); /*MEMORY LEAK*/ + cmd = need_to_free = strdup(cmd); if (!cmd) goto oom; @@ -538,6 +538,9 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in send_protected_args(*f_out_p, args); } + if (need_to_free) + free(need_to_free); + return pid; oom: