From f74687fd43f5772a372f54031d5a9527597f4ce4 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 24 Oct 2018 11:55:34 +0200 Subject: [PATCH 098/152] Fix memory leak in secmem in out of core conditions. * src/secmem.c (_gcry_secmem_malloc_internal): Release pool descriptor if the pool could not be allocated. -- GnuPG-bug-id: 4211 Signed-off-by: Werner Koch --- src/secmem.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/secmem.c b/src/secmem.c index 79c135f..3e091d8 100644 --- a/src/secmem.c +++ b/src/secmem.c @@ -658,7 +658,10 @@ _gcry_secmem_malloc_internal (size_t size, int xhint) pool->size = auto_expand? auto_expand : STANDARD_POOL_SIZE; pool->mem = malloc (pool->size); if (!pool->mem) - return NULL; /* Not enough memory available for a new pool. */ + { + free (pool); + return NULL; /* Not enough memory available for a new pool. */ + } /* Initialize first memory block. */ mb = (memblock_t *) pool->mem; mb->size = pool->size - BLOCK_HEAD_SIZE; -- 1.8.3.1