gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libmicrohttpd] branch master updated: memorypool: mute sanitizer errors


From: gnunet
Subject: [libmicrohttpd] branch master updated: memorypool: mute sanitizer errors
Date: Wed, 08 Sep 2021 14:29:01 +0200

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a commit to branch master
in repository libmicrohttpd.

The following commit(s) were added to refs/heads/master by this push:
     new a9a6c02e memorypool: mute sanitizer errors
a9a6c02e is described below

commit a9a6c02e7b5eb6462f8f95ff57823b458951fe01
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
AuthorDate: Wed Sep 8 15:26:09 2021 +0300

    memorypool: mute sanitizer errors
    
    Avoid using even temporal pointer values out of allocated area
---
 src/microhttpd/memorypool.c | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/microhttpd/memorypool.c b/src/microhttpd/memorypool.c
index f6883b08..63181f59 100644
--- a/src/microhttpd/memorypool.c
+++ b/src/microhttpd/memorypool.c
@@ -341,11 +341,15 @@ MHD_pool_reallocate (struct MemoryPool *pool,
   mhd_assert (pool->size >= pool->end - pool->pos);
   mhd_assert (old != NULL || old_size == 0);
   mhd_assert (old == NULL || pool->memory <= (uint8_t*) old);
-  mhd_assert (old == NULL || pool->memory + pool->size >= (uint8_t*) old
-              + old_size);
+  mhd_assert (pool->size >= old_size);
+  /* (old == NULL || pool->memory + pool->size >= (uint8_t*) old + old_size) */
+  mhd_assert (old == NULL || \
+              (pool->size) >= \
+              (((size_t) (((uint8_t*) old) - pool->memory)) + old_size));
   /* Blocks "from the end" must not be reallocated */
+  /* (old == NULL || old_size == 0 || pool->memory + pool->pos > (uint8_t*) 
old) */
   mhd_assert (old == NULL || old_size == 0 || \
-              pool->memory + pool->pos > (uint8_t*) old);
+              pool->pos > (size_t) ((uint8_t*) old - pool->memory));
 
   if (0 != old_size)
   {   /* Need to save some data */
@@ -415,10 +419,13 @@ MHD_pool_reset (struct MemoryPool *pool,
   mhd_assert (pool->end >= pool->pos);
   mhd_assert (pool->size >= pool->end - pool->pos);
   mhd_assert (copy_bytes <= new_size);
+  mhd_assert (copy_bytes <= pool->size);
   mhd_assert (keep != NULL || copy_bytes == 0);
   mhd_assert (keep == NULL || pool->memory <= (uint8_t*) keep);
-  mhd_assert (keep == NULL || pool->memory + pool->size >= (uint8_t*) keep
-              + copy_bytes);
+  /* (keep == NULL || pool->memory + pool->size >= (uint8_t*) keep + 
copy_bytes) */
+  mhd_assert (keep == NULL || \
+              pool->size >= \
+              ((size_t) ((uint8_t*) keep - pool->memory)) + copy_bytes);
   if ( (NULL != keep) &&
        (keep != pool->memory) )
   {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]