postgres.git / summary / log / commit / refs
commit a05cf22e0540e55fb34e26e6e98a8a76b76d1cbd
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun May 11 00:22:39 2025 +0000
First released in: 18.0, 17.6
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.
src/backend/utils/mmgr/bump.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backend/utils/mmgr/bump.c b/src/backend/utils/mmgr/bump.c
index c60c9c131e3..afd7fe04ab0 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;
[parent: 3007fee7f292]