From: Jeff King Date: Fri, 24 Sep 2021 20:21:06 GMT Subject: Re: [PATCH] packfile: release bad_objects in close_pack() Message-ID: In-Reply-To: <33a0120b-c10d-2709-49d3-7c3dc26565ee@web.de> On Fri, Sep 24, 2021 at 08:10:10AM +0200, René Scharfe wrote: > Unusable entries of a damaged pack file are recorded in the oidset > bad_objects. Release it when we're done with the pack. > > This doesn't affect intact packs because an empty oidset requires > no allocation. Good catch. I wondered if this was related to your recent 09ef66179b (packfile: use oidset for bad objects, 2021-09-11), but we'd have just leaked the manual array before then. > diff --git a/packfile.c b/packfile.c > index 0e92bd7bd2..89402cfc69 100644 > --- a/packfile.c > +++ b/packfile.c > @@ -339,6 +339,7 @@ void close_pack(struct packed_git *p) > close_pack_fd(p); > close_pack_index(p); > close_pack_revindex(p); > + oidset_clear(&p->bad_objects); > } Looks obviously correct. -Peff