Browse Source

Fixed warnings on realloc()

Ioannis Koutras 12 years ago
parent
commit
35ab22255f
1 changed files with 4 additions and 3 deletions
  1. 4 3
      src/realloc.c

+ 4 - 3
src/realloc.c

@@ -54,8 +54,9 @@ void * realloc(void *ptr, size_t size) {
 
     current_raw_block = systemallocator.raw_block_head;
     while(current_raw_block) {
-        if((char *)ptr - (char *)(current_raw_block) -
-                sizeof(raw_block_header_t) < current_raw_block->size) {
+        if(((char *)ptr > (char *)current_raw_block) &&
+                ((char *)ptr < (char *)(current_raw_block) +
+                 current_raw_block->size)) {
             found = true;
             break;
         }
@@ -73,6 +74,6 @@ void * realloc(void *ptr, size_t size) {
         return freelist_realloc(current_raw_block, ptr, size);
 #endif /* FL_RB_ONLY */
     } else {
-        return NULL;
+        return NULL; // FIXME what about big blocks?
     }
 }