Message ID | 33a0120b-c10d-2709-49d3-7c3dc26565ee@web.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | packfile: release bad_objects in close_pack() | expand |
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
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); } void close_object_store(struct raw_object_store *o)
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. Signed-off-by: René Scharfe <l.s.r@web.de> --- packfile.c | 1 + 1 file changed, 1 insertion(+) -- 2.33.0