Explorar el Código

* 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 hace 12 años
padre
commit
f0ada1ccc5
Se han modificado 1 ficheros con 2 adiciones y 1 borrados
  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;