Pārlūkot izejas kodu

malloc: check that a valid pointer is returned from a non-big block

Ioannis Koutras 12 gadi atpakaļ
vecāks
revīzija
e40ad8c107
1 mainītis faili ar 5 papildinājumiem un 0 dzēšanām
  1. 5 0
      src/malloc.c

+ 5 - 0
src/malloc.c

@@ -26,6 +26,7 @@
 #include "dmmlib/dmmlib.h"
 
 #include <inttypes.h>
+#include <assert.h>
 
 #include "dmmlib/lists.h"
 
@@ -63,6 +64,10 @@ void * malloc(size_t size) {
         unlock_raw_block(raw_block);
 
         if(ptr != NULL) {
+            /* Check that a valid pointer has been returned */
+            assert(((uintptr_t) raw_block < (uintptr_t) ptr) &&
+                    ((uintptr_t) ptr < (uintptr_t) raw_block +
+                     raw_block->size));
             break;
         }
     }