From: Christian Couder Date: Wed, 16 Mar 2016 19:35:11 +0000 (+0100) Subject: builtin/apply: free patch when parse_chunk() fails X-Git-Tag: v2.8.3~27^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7a6a44c2dc7a59ef8e117c2f1ea3c06ce6a6ff1f;p=thirdparty%2Fgit.git builtin/apply: free patch when parse_chunk() fails When parse_chunk() fails it can return -1, for example when find_header() doesn't find a patch header. In this case it's better in apply_patch() to free the "struct patch" that we just allocated instead of leaking it. Signed-off-by: Christian Couder Signed-off-by: Junio C Hamano --- diff --git a/builtin/apply.c b/builtin/apply.c index dbdfa9b646..ce3b77853c 100644 --- a/builtin/apply.c +++ b/builtin/apply.c @@ -4371,8 +4371,10 @@ static int apply_patch(int fd, const char *filename, int options) patch->inaccurate_eof = !!(options & INACCURATE_EOF); patch->recount = !!(options & RECOUNT); nr = parse_chunk(buf.buf + offset, buf.len - offset, patch); - if (nr < 0) + if (nr < 0) { + free_patch(patch); break; + } if (apply_in_reverse) reverse_patches(patch); if (use_patch(patch)) {