aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2025-05-10 20:22:39 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2025-05-10 20:22:39 -0400
commitd4a7e4e179f946e12708f758d30a07f931fd5a84 (patch)
tree7f328eff6e28e4b72ab4d5a5249eb325bda0332e
parent4a4ee0c2c1e53401924101945ac3d517c0a8a559 (diff)
downloadpostgresql-d4a7e4e179f946e12708f758d30a07f931fd5a84.tar.gz
postgresql-d4a7e4e179f946e12708f758d30a07f931fd5a84.zip
Fix incorrect "return NULL" in BumpAllocLarge().
This must be "return MemoryContextAllocationFailure(context, size, flags)" instead. The effect of this oversight is that if we got a malloc failure right here, the code would act as though MCXT_ALLOC_NO_OOM had been specified, whether it was or not. That would likely lead to a null-pointer-dereference crash at the unsuspecting call site. Noted while messing with a patch to improve our Valgrind leak detection support. Back-patch to v17 where this code came in.
-rw-r--r--src/backend/utils/mmgr/bump.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/utils/mmgr/bump.c b/src/backend/utils/mmgr/bump.c
index 434230fd95b..f7a37d1b3e8 100644
--- a/src/backend/utils/mmgr/bump.c
+++ b/src/backend/utils/mmgr/bump.c
@@ -316,7 +316,7 @@ BumpAllocLarge(MemoryContext context, Size size, int flags)
block = (BumpBlock *) malloc(blksize);
if (block == NULL)
- return NULL;
+ return MemoryContextAllocationFailure(context, size, flags);
context->mem_allocated += blksize;