summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniel Gustafsson <dgustafsson@postgresql.org>2025-02-14 11:50:56 +0100
committerDaniel Gustafsson <dgustafsson@postgresql.org>2025-02-14 11:50:56 +0100
commit9fcd360498ee2205320336676b40bc7bc10f4c06 (patch)
treec6290dcc02aa8a0045e817ac9aa6d83ecef1beec /src
parent5209058240f37cf794ccbe832f3de6c6e649a17d (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')
-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 2e0eef7f3de..4ea51e4e992 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -2555,13 +2555,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");