Skip to content

Commit 971566e

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 8e58f80 commit 971566e

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
@@ -2533,13 +2533,15 @@ bool
25332533
EvalPlanQualFetchRowMark(EPQState *epqstate, Index rti, TupleTableSlot *slot)
25342534
{
25352535
ExecAuxRowMark *earm = epqstate->relsubs_rowmark[rti - 1];
2536-
ExecRowMark *erm = earm->rowmark;
2536+
ExecRowMark *erm;
25372537
Datum datum;
25382538
bool isNull;
25392539

25402540
Assert(earm != NULL);
25412541
Assert(epqstate->origslot != NULL);
25422542

2543+
erm = earm->rowmark;
2544+
25432545
if (RowMarkRequiresRowShareLock(erm->markType))
25442546
elog(ERROR, "EvalPlanQual doesn't support locking rowmarks");
25452547

0 commit comments

Comments
 (0)