소스 검색

Proper check of the raw block owner of an allocation

Ioannis Koutras 13 년 전
부모
커밋
b149280060
1개의 변경된 파일3개의 추가작업 그리고 2개의 파일을 삭제
  1. 3 2
      src/free.c

+ 3 - 2
src/free.c

@@ -46,8 +46,9 @@ void free(void *ptr) {
 
     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;
         }