Re: [PATCH] dynahash: add memory allocation failure check
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: m.korotkov@postgrespro.ru
Cc: pgsql-hackers@postgresql.org
Date: 2025-04-23T19:42:53Z
Lists: pgsql-hackers
Attachments
- v2-fix-missing-palloc-check-in-dynahash.patch (text/x-diff) patch v2
m.korotkov@postgrespro.ru writes: > 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. Ugh, that's a stupid bug. Evidently my fault, too (9c911ec06). > Added the pointer check for avoiding a potential problem. This doesn't seem like a nice way to fix it. The code right there is assuming palloc semantics, which was okay before 9c911ec06, but is so no longer. I think the right thing is to put it back to palloc semantics, which means not using DynaHashAlloc there, as attached. regards, tom lane
Commits
-
Avoid possibly-theoretical OOM crash hazard in hash_create().
- bc19f63f8010 18.0 landed
- f45bdb13397f 16.9 landed
- e384118559ef 17.5 landed