summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorDaniel Gustafsson2025-02-14 10:50:56 +0000
committerDaniel Gustafsson2025-02-14 10:50:56 +0000
commitd6894d6a08f80b3b0608402f5e2d069201503b48 (patch)
tree54b97ae397ae4dd22959ef22031d8a8db5525c5b /src/backend
parent6342d49d89b95503444bb4fba01b85e1b24e8880 (diff)
Fix assertion on dereferenced object
Commit 27cc7cd2bc8a 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
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/executor/execMain.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 527e914ce96..8048b810e51 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -2629,13 +2629,15 @@ bool
EvalPlanQualFetchRowMark(EPQState *epqstate, Index rti, TupleTableSlot *slot)
{
ExecAuxRowMark *earm = epqstate->relsubs_rowmark[rti - 1];
- ExecRowMark *erm = earm->rowmark;
+ ExecRowMark *erm;
Datum datum;
bool isNull;
Assert(earm != NULL);
Assert(epqstate->origslot != NULL);
+ erm = earm->rowmark;
+
if (RowMarkRequiresRowShareLock(erm->markType))
elog(ERROR, "EvalPlanQual doesn't support locking rowmarks");