commit b143701e30e72529b2b0aed4991214b3054108db from: Kyle Ackerman via: Thomas Adam date: Tue Oct 22 16:27:52 2024 UTC free leaked `got_delta_table` entries The first `nmeta - max_base_candidates` were not freed in `got_pack_create`. Patch by Kyle Ackerman ok op@ commit - 087855b83c297a28d10affc24cb2cb72e7b7515f commit + b143701e30e72529b2b0aed4991214b3054108db blob - 43e2f0f1c21abce2d0c7f7ab1318276432190eb2 blob + 6f4aeaac0c8708dbc26bd902e02d4c3e1aea87c3 --- lib/pack_create.c +++ lib/pack_create.c @@ -111,8 +111,11 @@ free_nmeta(struct got_pack_meta **meta, int nmeta) { int i; - for (i = 0; i < nmeta; i++) + for (i = 0; i < nmeta; i++) { clear_meta(meta[i]); + got_deltify_free(meta[i]->dtab); + } + free(meta); } @@ -688,10 +691,6 @@ pick_deltas(struct got_pack_meta **meta, int nmeta, in raw = NULL; } done: - for (i = MAX(0, nmeta - max_base_candidates); i < nmeta; i++) { - got_deltify_free(meta[i]->dtab); - meta[i]->dtab = NULL; - } if (raw) got_object_raw_close(raw); if (base_raw)