[PATCH v3 3/5] builtin/mv.c: plug miniscule memory leak
- From
Brandon Casey <casey@nrlssc.navy.mil>
- Date
- Oct 6, 2011, 18:22 UTC
- Message-ID
- <U4wiHVyDLLG1PhI-8iY3YqpVXvr151LbD3OSy1NeXQm5ByYpuasT4PQ2mikx8l9NCM-x0SQVCoNYKu2B_37OiPIe7xhKUs0BWoBswpMpuwrxmIZKhEHGr_44lDLJGr3mebaKn5BoGro@cipher.nrlssc.navy.mil>
- In-Reply-To
- <VYN8m1JCy102-eaWWa-bsunEvt3zeXLJkVg7FZKZCtXT-Ww0vg7a8xA7NTvrZTiovKTnJ9Hlom0@cipher.nrlssc.navy.mil>
From: Brandon Casey <drafnel@gmail.com>
The "it" string would not be free'ed if base_name was non-NULL. Let's free it.
Signed-off-by: Brandon Casey <drafnel@gmail.com> --- builtin/mv.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/builtin/mv.c b/builtin/mv.c index e9d191f..5efe6c5 100644 --- a/builtin/mv.c +++ b/builtin/mv.c @@ -29,7 +29,11 @@ static const char **copy_pathspec(const char *prefix, const char **pathspec, to_copy--; if (to_copy != length || base_name) { char *it = xmemdupz(result[i], to_copy); - result[i] = base_name ? xstrdup(basename(it)) : it; + if (base_name) { + result[i] = xstrdup(basename(it)); + free(it); + } else + result[i] = it; } } return get_pathspec(prefix, result);
-- 1.7.7