From 998d100cdb7220a81b8775b67fbc1d5bbb918052 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Wed, 10 Dec 2025 11:43:16 +0200 Subject: [PATCH] Fix some near-bugs related to ResourceOwner function arguments These functions took a ResourceOwner argument, but only checked if it was NULL, and then used CurrentResourceOwner for the actual work. Surely the intention was to use the passed-in resource owner. All current callers passed CurrentResourceOwner or NULL, so this has no consequences at the moment, but it's an accident waiting to happen for future caller and extensions. Author: Matthias van de Meent Discussion: https://www.postgresql.org/message-id/CAEze2Whnfv8VuRZaohE-Af+GxBA1SNfD_rXfm84Jv-958UCcJA@mail.gmail.com Backpatch-through: 17 --- src/backend/utils/cache/catcache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c index 59d625b244c..59d3825917b 100644 --- a/src/backend/utils/cache/catcache.c +++ b/src/backend/utils/cache/catcache.c @@ -1638,7 +1638,7 @@ ReleaseCatCacheWithOwner(HeapTuple tuple, ResourceOwner resowner) ct->refcount--; if (resowner) - ResourceOwnerForgetCatCacheRef(CurrentResourceOwner, &ct->tuple); + ResourceOwnerForgetCatCacheRef(resowner, &ct->tuple); if ( #ifndef CATCACHE_FORCE_RELEASE @@ -2083,7 +2083,7 @@ ReleaseCatCacheListWithOwner(CatCList *list, ResourceOwner resowner) Assert(list->refcount > 0); list->refcount--; if (resowner) - ResourceOwnerForgetCatCacheListRef(CurrentResourceOwner, list); + ResourceOwnerForgetCatCacheListRef(resowner, list); if ( #ifndef CATCACHE_FORCE_RELEASE