Skip to content

Commit 67a0234

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 9e17ac9 commit 67a0234

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
@@ -2662,13 +2662,15 @@ bool
26622662
EvalPlanQualFetchRowMark(EPQState *epqstate, Index rti, TupleTableSlot *slot)
26632663
{
26642664
ExecAuxRowMark *earm = epqstate->relsubs_rowmark[rti - 1];
2665-
ExecRowMark *erm = earm->rowmark;
2665+
ExecRowMark *erm;
26662666
Datum datum;
26672667
bool isNull;
26682668

26692669
Assert(earm != NULL);
26702670
Assert(epqstate->origslot != NULL);
26712671

2672+
erm = earm->rowmark;
2673+
26722674
if (RowMarkRequiresRowShareLock(erm->markType))
26732675
elog(ERROR, "EvalPlanQual doesn't support locking rowmarks");
26742676

0 commit comments

Comments
 (0)