aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2015-01-25 08:04:22 +0000
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2015-01-25 08:04:22 +0000
commit5454d9f3b520e597dc783d974596c9591cf4631d (patch)
tree85925c4534f24afa04cb829688d120ef4857f4e7
parent66385ca7a586d1d4a0a68efe4be667d270127f89 (diff)
downloadlibmicrohttpd-5454d9f3b520e597dc783d974596c9591cf4631d.tar.gz
libmicrohttpd-5454d9f3b520e597dc783d974596c9591cf4631d.zip
memorypool.c: prevent coping of uninitialized memory in MHD_pool_reset()
-rw-r--r--src/microhttpd/memorypool.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/microhttpd/memorypool.c b/src/microhttpd/memorypool.c
index 3e542ca7..3cd70871 100644
--- a/src/microhttpd/memorypool.c
+++ b/src/microhttpd/memorypool.c
@@ -263,7 +263,6 @@ MHD_pool_reset (struct MemoryPool *pool,
263 void *keep, 263 void *keep,
264 size_t size) 264 size_t size)
265{ 265{
266 size = ROUND_TO_ALIGN (size);
267 if (NULL != keep) 266 if (NULL != keep)
268 { 267 {
269 if (keep != pool->memory) 268 if (keep != pool->memory)
@@ -271,12 +270,13 @@ MHD_pool_reset (struct MemoryPool *pool,
271 memmove (pool->memory, keep, size); 270 memmove (pool->memory, keep, size);
272 keep = pool->memory; 271 keep = pool->memory;
273 } 272 }
274 pool->pos = size;
275 } 273 }
276 pool->end = pool->size; 274 pool->end = pool->size;
277 memset (&pool->memory[size], 275 memset (&pool->memory[size],
278 0, 276 0,
279 pool->size - size); 277 pool->size - size);
278 if (NULL != keep)
279 pool->pos = ROUND_TO_ALIGN(size);
280 return keep; 280 return keep;
281} 281}
282 282