From: Johannes Schindelin Date: Tue, 20 Feb 2007 02:45:49 +0000 (+0100) Subject: apply: fix memory leak in prefix_one() X-Git-Tag: v1.5.1-rc1~258^3~5 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=eac70c4f64a618744e05d4a5be61a356c0011033;p=git.git apply: fix memory leak in prefix_one() Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- diff --git a/builtin-apply.c b/builtin-apply.c index 053511e2e..2a40af3ff 100644 --- a/builtin-apply.c +++ b/builtin-apply.c @@ -2502,11 +2502,13 @@ static int use_patch(struct patch *p) return 1; } -static char *prefix_one(char *name) +static void prefix_one(char **name) { - if (!name) - return name; - return xstrdup(prefix_filename(prefix, prefix_length, name)); + char *old_name = *name; + if (!old_name) + return; + *name = xstrdup(prefix_filename(prefix, prefix_length, *name)); + free(old_name); } static void prefix_patches(struct patch *p) @@ -2514,8 +2516,9 @@ static void prefix_patches(struct patch *p) if (!prefix) return; for ( ; p; p = p->next) { - p->new_name = prefix_one(p->new_name); - p->old_name = prefix_one(p->old_name); + if (p->new_name != p->old_name) + prefix_one(&p->new_name); + prefix_one(&p->old_name); } }