Re: [PATCH] dynahash: add memory allocation failure check

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: m.korotkov@postgrespro.ru
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-23T09:46:40Z
Lists: pgsql-hackers

> On 23 Apr 2025, at 13:32, m.korotkov@postgrespro.ru wrote:
> 
> I found a case of potential NULL pointer dereference.
> In src/backend/utils/hash/dynahash.c in function HTAB *hash_create() the result of the DynaHashAlloc() is used unsafely.
> The function DynaHashAlloc() calls MemoryContextAllocExtended() with MCXT_ALLOC_NO_OOM and can return a NULL pointer.
> Added the pointer check for avoiding a potential problem.

Yeah, good catch.
And all HTAB->alloc() (which relies on DynaHashAlloc) callers seem to check for NULL result.
It seems there are a lot of cases of MCXT_ALLOC_NO_OOM, perhaps should we check them all?


Best regards, Andrey Borodin.


Commits

  1. Avoid possibly-theoretical OOM crash hazard in hash_create().