commit f1461b8c3c7e76e5912760a8c7e959bfa7e205df from: Stefan Sperling via: Thomas Adam date: Tue Aug 30 18:37:47 2022 UTC object cache: if kicking an object out to make space, reuse its mem allocation commit - ab451195b3d2fe777bb1aa5dd88e58c1b0c3a25f commit + f1461b8c3c7e76e5912760a8c7e959bfa7e205df blob - 4e4e2777b1dbdc01db5204cfc9bf11cf2dde7418 blob + a70f0780746f30049e03b112cf496e32c2e9f507 --- lib/object_cache.c +++ lib/object_cache.c @@ -227,13 +227,14 @@ got_object_cache_add(struct got_object_cache *cache, s got_object_raw_close(ce->data.raw); break; } - free(ce); + memset(ce, 0, sizeof(*ce)); cache->cache_evict++; + } else { + ce = malloc(sizeof(*ce)); + if (ce == NULL) + return got_error_from_errno("malloc"); } - ce = malloc(sizeof(*ce)); - if (ce == NULL) - return got_error_from_errno("malloc"); memcpy(&ce->id, id, sizeof(ce->id)); switch (cache->type) { case GOT_OBJECT_CACHE_TYPE_OBJ: