From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Josh Steadmon <steadmon@google.com>
Cc: git@vger.kernel.org, stolee@gmail.com
Subject: Re: [PATCH] commit-graph: fix memory leak
Date: Tue, 07 May 2019 11:49:41 +0200 [thread overview]
Message-ID: <87zhnyh9vu.fsf@evledraar.gmail.com> (raw)
In-Reply-To: <f4ab2a50873b2fd91926d7401f784479504d1b10.1557178485.git.steadmon@google.com>
On Mon, May 06 2019, Josh Steadmon wrote:
> Free the commit graph when verify_commit_graph_lite() reports an error.
> Credit to OSS-Fuzz for finding this leak.
>
> Signed-off-by: Josh Steadmon <steadmon@google.com>
> ---
> commit-graph.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/commit-graph.c b/commit-graph.c
> index 66865acbd7..4bce70d35c 100644
> --- a/commit-graph.c
> +++ b/commit-graph.c
> @@ -267,8 +267,10 @@ struct commit_graph *parse_commit_graph(void *graph_map, int fd,
> last_chunk_offset = chunk_offset;
> }
>
> - if (verify_commit_graph_lite(graph))
> + if (verify_commit_graph_lite(graph)) {
> + free(graph);
> return NULL;
> + }
>
> return graph;
> }
This is obviously correct, FWIW the leak was there before the
verify_commit_graph_lite() refactoring I did, but I read the rest of the
surrounding code (but haven't run valgrind etc.) and it seems to be the
only one.
I wonder in general if there's a more sustainable solution to these
one-at-a-time memory leak fixes we're doing to these
libraries. E.g. marking some tests in the test suite as passing cleanly
with valgrind's leak checker, and adding a test mode to run those tests.
next prev parent reply other threads:[~2019-05-07 9:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-06 21:36 [PATCH] commit-graph: fix memory leak Josh Steadmon
2019-05-06 21:58 ` Emily Shaffer
2019-05-07 1:58 ` Derrick Stolee
2019-05-07 9:49 ` Ævar Arnfjörð Bjarmason [this message]
2019-05-07 22:26 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zhnyh9vu.fsf@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=steadmon@google.com \
--cc=stolee@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.