Re: Small bugs regarding resowner handling in aio.c, catcache.c

From: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
To: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: Small bugs regarding resowner handling in aio.c, catcache.c
Date: 2025-12-10 09:51:35
Message-ID: 2af3e1c8-5d94-467a-a9b6-cc35e220d2ee@iki.fi
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 10/12/2025 01:33, Matthias van de Meent wrote:
> Hi Heikki, Andres,
>
> Whilst looking through catcache.c's code I noticed this piece of code:
>
> ReleaseCatCacheListWithOwner(CatCList *list, ResourceOwner resowner)
> {
> [...]
> if (resowner)
> ResourceOwnerForgetCatCacheRef(CurrentResourceOwner, &ct->tuple);
>
> Note how the resowner argument is ignored in favour of
> CurrentResourceOwner; and that probably wasn't what the author
> intended.
>
> So I looked around a bit, and found 2 more similar instances: one more
> in catcache.c, and one in aio.c. I can't guarantee that there are no
> other comparable issues, but at least I could not immediately find any
> functions that ignore their ResourceOwner argument in favour of
> CurrentResourceOwner.
>
> The issue in aio.c is externally visible, so it might trigger issues.
> However, every caller in the tree uses CurrentResourceOwner, so only
> extensions could trigger this bug.
> The two issues in catcache.c are benign: No external code can trigger
> it with a different resource owner; and while no internal code would
> trigger it either, it's better to use the provided resowner, so that
> future callers won't activate the bug.
>
> Attached a fix for all 3 cases.

Pushed and backpatched, thanks!

- Heikki

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrey Borodin 2025-12-10 09:53:02 Re: PoC: Simplify recovery after dropping a table by LOGGING the restore LSN
Previous Message Daniel Gustafsson 2025-12-10 09:33:05 Re: updates for handling optional argument in system functions