]> git.ipfire.org Git - thirdparty/git.git/commitdiff
submodule--helper: use strbuf_release() to free strbufs
authorJeff King <peff@peff.net>
Fri, 14 Aug 2020 16:14:14 +0000 (12:14 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 14 Aug 2020 17:52:04 +0000 (10:52 -0700)
The prepare_to_clone_next_submodule() function has a few local-variable
strbufs. We use strbuf_reset() throughout the function to reuse the
buffers over and over. But at the end of the function we also use
strbuf_reset() as they go out of scope, which means we end up leaking
their heap buffers. This should be strbuf_release() instead.

These were introduced by 48308681b0 (git submodule update: have a
dedicated helper for cloning, 2016-02-29), but it doesn't seem to have
the same mistake elsewhere. Likewise, I looked for other instances of
the pattern in the submodule--helper file but couldn't find any.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/submodule--helper.c

index a1c75607c72e190a10cc7af0184a41b04f5e77b5..7f90770596606d6fb90d8ab6cbe3fd9d97670742 100644 (file)
@@ -1747,8 +1747,8 @@ static int prepare_to_clone_next_submodule(const struct cache_entry *ce,
                                              "--no-single-branch");
 
 cleanup:
-       strbuf_reset(&displaypath_sb);
-       strbuf_reset(&sb);
+       strbuf_release(&displaypath_sb);
+       strbuf_release(&sb);
        if (need_free_url)
                free((void*)url);