commit bb6672b6aba1cb45a10d52bec828e68379e9ad61 from: Theo Buehler date: Thu Apr 14 09:51:32 2022 UTC make sure callers of got_object_idset_add() free data. commit - 3d1a1e4cbc91e39df83eb35eb3df3cc87719a0b5 commit + bb6672b6aba1cb45a10d52bec828e68379e9ad61 blob - b52856ef9a6f270f64d7a55d2f968ff3d9040061 blob + 4e9a9b9541862d224810bd98f0fb1953d78d7259 --- lib/pack_create.c +++ lib/pack_create.c @@ -867,11 +867,19 @@ add_object(int want_meta, struct got_object_idset *ids (*nfound)++; err = report_progress(progress_cb, progress_arg, rl, *ncolored, *nfound, *ntrees, 0L, 0, 0, 0, 0); - if (err) + if (err) { + clear_meta(m); + free(m); return err; + } } - return got_object_idset_add(idset, id, m); + err = got_object_idset_add(idset, id, m); + if (err) { + clear_meta(m); + free(m); + } + return err; } static const struct got_error * blob - ea1f566d447530cb54a004e23cbef404038565bb blob + 8616b4e5f3930bdff53402d97880b3ae74a6fa5f --- lib/reference.c +++ lib/reference.c @@ -1569,8 +1569,10 @@ add_object_id_map_entry(struct got_object_idset *idset TAILQ_INIT(&ent->refs); err = got_object_idset_add(idset, id, ent); - if (err) + if (err) { + free(ent); return err; + } } err = got_reflist_entry_dup(&new, re);