mirror of
https://github.com/postgres/postgres.git
synced 2025-06-14 18:42:34 +03:00
Fix another instance of unsafe coding for shm_toc_lookup failure.
One or another author of commit 5bcf389ec
seems to have thought that
computing an offset from a NULL pointer would yield another NULL pointer.
There may possibly be architectures where that works, but common machines
don't work like that. Per a quick code review of places calling
shm_toc_lookup and not using noError = false.
This commit is contained in:
@ -2582,9 +2582,13 @@ ExecHashInitializeWorker(HashState *node, ParallelWorkerContext *pwcxt)
|
|||||||
{
|
{
|
||||||
SharedHashInfo *shared_info;
|
SharedHashInfo *shared_info;
|
||||||
|
|
||||||
|
/* might not be there ... */
|
||||||
shared_info = (SharedHashInfo *)
|
shared_info = (SharedHashInfo *)
|
||||||
shm_toc_lookup(pwcxt->toc, node->ps.plan->plan_node_id, true);
|
shm_toc_lookup(pwcxt->toc, node->ps.plan->plan_node_id, true);
|
||||||
|
if (shared_info)
|
||||||
node->hinstrument = &shared_info->hinstrument[ParallelWorkerNumber];
|
node->hinstrument = &shared_info->hinstrument[ParallelWorkerNumber];
|
||||||
|
else
|
||||||
|
node->hinstrument = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user