From: Tom Lane Date: Fri, 19 Mar 2021 00:37:09 +0000 (-0400) Subject: Don't leak rd_statlist when a relcache entry is dropped. X-Git-Tag: REL_12_7~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fbcc9fe33c43a3fb79812b72960df4909a4551e5;p=thirdparty%2Fpostgresql.git Don't leak rd_statlist when a relcache entry is dropped. Although these lists are usually NIL, and even when not empty are unlikely to be large, constant relcache update traffic could eventually result in visible bloat of CacheMemoryContext. Found via valgrind testing. Back-patch to v10 where this field was added. Discussion: https://postgr.es/m/3816764.1616104288@sss.pgh.pa.us --- diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index d0ad738c240..c6e3dc30169 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -2348,6 +2348,7 @@ RelationDestroyRelation(Relation relation, bool remember_tupdesc) FreeTriggerDesc(relation->trigdesc); list_free_deep(relation->rd_fkeylist); list_free(relation->rd_indexlist); + list_free(relation->rd_statlist); bms_free(relation->rd_indexattr); bms_free(relation->rd_keyattr); bms_free(relation->rd_pkattr);