Re: Fix possible dereference null pointer (src/backend/replication/logical/reorderbuffer.c)

From: Ranier Vilela <ranier(dot)vf(at)gmail(dot)com>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: Pg Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Fix possible dereference null pointer (src/backend/replication/logical/reorderbuffer.c)
Date: 2024-04-11 13:37:20
Message-ID: CAEudQAop7_XOPXwAozbyyugHw+Ca5Lur5hRo3SrusRLwV7n8Ng@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Em qui., 11 de abr. de 2024 às 09:54, Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
escreveu:

> On 11/04/2024 15:03, Ranier Vilela wrote:
> > Em qua., 10 de abr. de 2024 às 18:28, Heikki Linnakangas
> > <hlinnaka(at)iki(dot)fi <mailto:hlinnaka(at)iki(dot)fi>> escreveu:
> >
> > On 10/04/2024 21:07, Ranier Vilela wrote:
> > > Hi,
> > >
> > > Per Coverity.
> > >
> > > The function ReorderBufferTXNByXid,
> > > can return NULL when the parameter *create* is false.
> > >
> > > In the functions ReorderBufferSetBaseSnapshot
> > > and ReorderBufferXidHasBaseSnapshot,
> > > the second call to ReorderBufferTXNByXid,
> > > pass false to *create* argument.
> > >
> > > In the function ReorderBufferSetBaseSnapshot,
> > > fixed passing true as argument to always return
> > > a valid ReorderBufferTXN pointer.
> > >
> > > In the function ReorderBufferXidHasBaseSnapshot,
> > > fixed by checking if the pointer is NULL.
> >
> > If it's a "known subxid", the top-level XID should already have its
> > ReorderBufferTXN entry, so ReorderBufferTXN() should never return
> NULL.
> >
> > There are several conditions to not return NULL,
> > I think trusting never is insecure.
>
> Well, you could make it an elog(ERROR, ..) instead. But the point is
> that it should not happen, and if it does for some reason, that's very
> suprpising and there is a bug somewhere. In that case, we should *not*
> just blindly create it and proceed as if everything was OK.
>
Thanks for the clarification.
I will then suggest improving robustness,
but avoiding hiding any possible errors that may occur.

v1 patch attached.

best regards,
Ranier Vilela

Attachment Content-Type Size
v1-fix-possible-dereference-null-pointer-reorderbuffer.patch application/octet-stream 1.1 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Nathan Bossart 2024-04-11 14:03:32 Re: SET ROLE documentation improvement
Previous Message Daniel Gustafsson 2024-04-11 13:37:00 Re: Typos in the code and README