Pārlūkot izejas kodu

fix a bug in BitMessage which cause invalid pointer

mikymod 13 gadi atpakaļ
vecāks
revīzija
9163040cb9
2 mainītis faili ar 7 papildinājumiem un 1 dzēšanām
  1. 5 1
      src/network/BitMessage.cpp
  2. 2 0
      tests/compressors.cpp

+ 5 - 1
src/network/BitMessage.cpp

@@ -28,10 +28,14 @@ BitMessage::~BitMessage()
   {
   {
 		m_allocator->deallocate((void*)w_data);
 		m_allocator->deallocate((void*)w_data);
   }
   }
+  */
+  /*
+   * w_data and r_data point the same memory location 
+   */
   if (r_data)
   if (r_data)
   {
   {
 		m_allocator->deallocate((void*)r_data);
 		m_allocator->deallocate((void*)r_data);
-  }*/
+  }
 }
 }
 //---------------------------------------------------------------------------------------------
 //---------------------------------------------------------------------------------------------
 
 

+ 2 - 0
tests/compressors.cpp

@@ -42,7 +42,9 @@ int main(int argc, char** argv)
 	}
 	}
 	printf("\n\n");
 	printf("\n\n");
 	
 	
+	allocator.deallocate(compressed_string);
   	allocator.deallocate(result); //FIX: invalid pointer -> check header in MallocAllocator*/
   	allocator.deallocate(result); //FIX: invalid pointer -> check header in MallocAllocator*/
 	
 	
+	delete uncompressed_string;
 	return 0;
 	return 0;
 }
 }