From: René Scharfe Date: Fri, 3 Oct 2014 22:40:24 +0000 (+0200) Subject: bundle: plug minor memory leak in is_tag_in_date_range() X-Git-Tag: v2.2.0-rc0~48^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=64045940af0539f15335d7664908e74d1febc439;p=git bundle: plug minor memory leak in is_tag_in_date_range() Free the buffer returned by read_sha1_file() even if no valid tagger line is found. Signed-off-by: Rene Scharfe Reviewed-by: Jonathan Nieder Signed-off-by: Junio C Hamano --- diff --git a/bundle.c b/bundle.c index b708906cdb..643b8b8b2e 100644 --- a/bundle.c +++ b/bundle.c @@ -209,26 +209,29 @@ static int is_tag_in_date_range(struct object *tag, struct rev_info *revs) { unsigned long size; enum object_type type; - char *buf, *line, *lineend; + char *buf = NULL, *line, *lineend; unsigned long date; + int result = 1; if (revs->max_age == -1 && revs->min_age == -1) - return 1; + goto out; buf = read_sha1_file(tag->sha1, &type, &size); if (!buf) - return 1; + goto out; line = memmem(buf, size, "\ntagger ", 8); if (!line++) - return 1; + goto out; lineend = memchr(line, '\n', buf + size - line); line = memchr(line, '>', lineend ? lineend - line : buf + size - line); if (!line++) - return 1; + goto out; date = strtoul(line, NULL, 10); - free(buf); - return (revs->max_age == -1 || revs->max_age < date) && + result = (revs->max_age == -1 || revs->max_age < date) && (revs->min_age == -1 || revs->min_age > date); +out: + free(buf); + return result; } int create_bundle(struct bundle_header *header, const char *path,