On Sun, Jun 11, 2023 at 08:50:27PM +0200, Rubén Justo wrote: > diff --git a/branch.c b/branch.c > index 19d606d360..09b9563ae7 100644 > --- a/branch.c > +++ b/branch.c > @@ -480,9 +480,12 @@ static int check_tracking_branch(struct remote *remote, void *cb_data) > { > char *tracking_branch = cb_data; > struct refspec_item query; > + int res; > memset(&query, 0, sizeof(struct refspec_item)); > query.dst = tracking_branch; > - return !remote_find_tracking(remote, &query); > + res = !remote_find_tracking(remote, &query); > + free(query.src); > + return res; > } OK, so we expect remote_find_tracking() to fill in the "src" field, but we don't actually care about the value here (we are just validating). It probably doesn't fill in the value for some error cases, but then we'd be left with a NULL, which is OK to feed to free(). Makes sense. I double-checked that it always allocates "src" when it is assigned to, so I think this fix is good. -Peff