Re: [PATCH] avoid buffer underflow in errfinish() - Mailing list pgsql-hackers

From Robert Haas
Subject Re: [PATCH] avoid buffer underflow in errfinish()
Date
Msg-id CA+TgmoYjHVXgC77u8H=jxSd3cGCV+RUH1x=QDb0dGC=ovDOZqA@mail.gmail.com
Whole thread Raw
In response to Re: [PATCH] avoid buffer underflow in errfinish()  (Xi Wang <xi.wang@gmail.com>)
Responses Re: [PATCH] avoid buffer underflow in errfinish()  (Heikki Linnakangas <hlinnakangas@vmware.com>)
List pgsql-hackers
On Sat, Mar 23, 2013 at 6:45 PM, Xi Wang <xi.wang@gmail.com> wrote:
> A side question: at src/backend/storage/lmgr/proc.c:1150, is there a
> null pointer deference for `autovac'?

Not really.  If the deadlock_state is DS_BLOCKED_BY_AUTOVACUUM, there
has to be a blocking autovacuum proc.  As in the other case that you
found, though, some code rearrangement would likely make the intent of
the code more clear and avoid future mistakes.

Perhaps something like:
       if (deadlock_state == DS_BLOCKED_BY_AUTOVACUUM &&
allow_autovacuum_cancel           && (autovac = GetBlockingAutoVacuumPgproc()) != NULL)       {           PGXACT
*autovac_pgxact=
 
&ProcGlobal->allPgXact[autovac->pgprocno];           ...


-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: [PATCH] avoid buffer underflow in errfinish()
Next
From: Robert Haas
Date:
Subject: Re: [COMMITTERS] pgsql: sepgsql: Support for new post-ALTER access hook.