]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix incorrect "return NULL" in BumpAllocLarge().
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 11 May 2025 00:22:39 +0000 (20:22 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 11 May 2025 00:22:39 +0000 (20:22 -0400)
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

index c60c9c131e395f46669a996b5a1504b91ca81248..afd7fe04ab0c2302fc89b6bae2c9ba71405a3b1d 100644 (file)
@@ -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;