X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/9f6b3bf5187562bac4c96e3ed6a17740d01489fa..a85c067ba6c6940512cf57ec213277a370d87e70:/src/src/store.c diff --git a/src/src/store.c b/src/src/store.c index 5ec636bd1..449fb4ead 100644 --- a/src/src/store.c +++ b/src/src/store.c @@ -5,6 +5,7 @@ /* Copyright (c) The Exim maintainers 2019 - 2022 */ /* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ +/* SPDX-License-Identifier: GPL-2.0-only */ /* Exim gets and frees all its store through these functions. In the original implementation there was a lot of mallocing and freeing of small bits of store. @@ -274,6 +275,9 @@ for (pp = paired_pools; pp < paired_pools + N_PAIRED_POOLS; pp++) for (b = pp->chainbase; b; b = b->next) if (is_pointer_in_block(b, p)) return pp; +#ifndef COMPILE_UTILITY +stackdump(); +#endif log_write(0, LOG_MAIN|LOG_PANIC_DIE, "bad memory reference; pool not found, at %s %d", func, linenumber); return NULL; @@ -380,7 +384,7 @@ allocated store. */ if (size < 0 || size >= INT_MAX/2) log_write(0, LOG_MAIN|LOG_PANIC_DIE, - "bad memory allocation requested (%d bytes) at %s %d", + "bad memory allocation requested (%d bytes) from %s %d", size, func, linenumber); /* Round up the size to a multiple of the alignment. Although this looks a @@ -1150,8 +1154,8 @@ a negative int, to the (unsigned, wider) size_t */ if (size >= INT_MAX/2) log_write(0, LOG_MAIN|LOG_PANIC_DIE, - "bad memory allocation requested (" SIZE_T_FMT " bytes) at %s %d", - size, func, line); + "bad internal_store_malloc request (" SIZE_T_FMT " bytes) from %s %d", + size, func, line); size += sizeof(size_t); /* space to store the size, used under debug */ if (size < 16) size = 16;