Explorar el Código

+ check the pointer offset alignment, when freeing a suballocated block from the
win16 global heap manager

git-svn-id: trunk@37680 -

nickysn hace 7 años
padre
commit
e3a1051dfc
Se han modificado 1 ficheros con 1 adiciones y 1 borrados
  1. 1 1
      rtl/win16/glbheap.inc

+ 1 - 1
rtl/win16/glbheap.inc

@@ -195,7 +195,7 @@ circular linked list.
       begin
       begin
         ASize:=(ASize+3) and $fffc;
         ASize:=(ASize+3) and $fffc;
         CurBlock:=Seg(Addr^);
         CurBlock:=Seg(Addr^);
-        if Ofs(Addr^)<SizeOf(TGlobalHeapBlockHeader) then
+        if (Ofs(Addr^)<SizeOf(TGlobalHeapBlockHeader)) or ((Ofs(Addr^) and 3)<>0) then
           HandleError(204);
           HandleError(204);
         CurBlockP:=Ptr(CurBlock,0);
         CurBlockP:=Ptr(CurBlock,0);
         if CurBlockP^.TotalFreeSpaceInBlock=0 then
         if CurBlockP^.TotalFreeSpaceInBlock=0 then