Skip to content

Commit 22240b2

Browse files
Fix assertion on dereferenced object
Commit 27cc7cd accidentally placed the assertion ensuring that the pointer isn't NULL after it had already been accessed. Fix by moving the pointer dereferencing to after the assertion. Backpatch to all supported branches. Author: Dmitry Koval <d.koval@postgrespro.ru> Reviewed-by: Daniel Gustafsson <daniel@yesql.se> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/1618848d-cdc7-414b-9c03-08cf4bef4408@postgrespro.ru Backpatch-through: 13
1 parent 139beb0 commit 22240b2

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/backend/executor/execMain.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2653,13 +2653,15 @@ bool
26532653
EvalPlanQualFetchRowMark(EPQState *epqstate, Index rti, TupleTableSlot *slot)
26542654
{
26552655
ExecAuxRowMark *earm = epqstate->relsubs_rowmark[rti - 1];
2656-
ExecRowMark *erm = earm->rowmark;
2656+
ExecRowMark *erm;
26572657
Datum datum;
26582658
bool isNull;
26592659

26602660
Assert(earm != NULL);
26612661
Assert(epqstate->origslot != NULL);
26622662

2663+
erm = earm->rowmark;
2664+
26632665
if (RowMarkRequiresRowShareLock(erm->markType))
26642666
elog(ERROR, "EvalPlanQual doesn't support locking rowmarks");
26652667

0 commit comments

Comments
 (0)