Răsfoiți Sursa

* fixed bug in SysTinyGetMem that caused heap corruption if the free block that's being allocated is followed tightly by an already allocated block

git-svn-id: trunk@24520 -
nickysn 12 ani în urmă
părinte
comite
f0ada1ccc5
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      rtl/inc/tinyheap.inc

+ 2 - 1
rtl/inc/tinyheap.inc

@@ -71,7 +71,8 @@
 
             pptruint(p)^ := size;
 
-            InternalTinyFreeMem(pointer(ptruint(p)+AllocSize), RestSize);
+            if RestSize > 0 then
+              InternalTinyFreeMem(pointer(ptruint(p)+AllocSize), RestSize);
           end
         else
           Result := nil;