diff --git a/src/lib/test-mempool-alloconly.c b/src/lib/test-mempool-alloconly.c index 4c980de01e..a4ff091263 100644 --- a/src/lib/test-mempool-alloconly.c +++ b/src/lib/test-mempool-alloconly.c @@ -16,15 +16,24 @@ static bool mem_has_bytes(const void *mem, size_t size, uint8_t b) void test_mempool_alloconly(void) { +#define SENTRY_SIZE 32 +#define SENTRY_CHAR '\xDE' #define PMALLOC_MAX_COUNT 128 pool_t pool; unsigned int i, j, k; void *mem[PMALLOC_MAX_COUNT + 1]; + char *sentry; test_begin("mempool_alloconly"); for (i = 0; i < 64; i++) { for (j = 1; j <= 128; j++) { pool = pool_alloconly_create(MEMPOOL_GROWING"test", i); + /* make sure p_malloc() doesn't overwrite unallocated + data in data stack. parts of the code relies on + this. */ + sentry = t_buffer_get(SENTRY_SIZE); + memset(sentry, SENTRY_CHAR, SENTRY_SIZE); + mem[0] = p_malloc(pool, j); memset(mem[0], j, j); @@ -32,6 +41,8 @@ void test_mempool_alloconly(void) mem[k] = p_malloc(pool, k); memset(mem[k], k, k); } + test_assert(mem_has_bytes(sentry, SENTRY_SIZE, SENTRY_CHAR)); + test_assert(t_buffer_get(SENTRY_SIZE) == sentry); test_assert(mem_has_bytes(mem[0], j, j)); for (k = 1; k <= PMALLOC_MAX_COUNT; k++)