Using free() on a refspec was always leaky, as its string fields also need freed. But it became more so when ad00f128d (clone: respect configured fetch respecs during initial fetch, 2016-03-30) taught clone to create a list of refspecs, each of which need to be freed. Signed-off-by: Jeff King <peff@xxxxxxxx> --- It's doubtful anyone cares, as this is right before program exit anyway. But if we're going to bother to free(), we may as well do it right. builtin/clone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/clone.c b/builtin/clone.c index 645cfa4fd..672c5b0a6 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -1144,6 +1144,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix) strbuf_release(&value); junk_mode = JUNK_LEAVE_ALL; - free(refspec); + free_refspec(refspec_count, refspec); return err; } -- 2.13.0.458.g025404205