浏览代码

* Fix issue ID #0039024, potential wrong write

git-svn-id: trunk@49518 -
(cherry picked from commit 15f25da1fa4d295e642fd79fd1fd6b1a9cdd484b)
michael 4 年之前
父节点
当前提交
5fb04fe72f
共有 1 个文件被更改,包括 3 次插入4 次删除
  1. 3 4
      packages/paszlib/src/zipper.pp

+ 3 - 4
packages/paszlib/src/zipper.pp

@@ -972,7 +972,7 @@ end;
 procedure TDeflater.Compress;
 Var
   Buf : PByte;
-  I,Count,NewCount : integer;
+  I,Count : integer;
   C : TCompressionStream;
   BytesNow : Int64;
   NextMark : Int64;
@@ -996,9 +996,8 @@ begin
         Count:=FInFile.Read(Buf^,FBufferSize);
         For I:=0 to Count-1 do
           UpdC32(Buf[i]);
-        NewCount:=Count;
-        while (NewCount>0) do
-          NewCount:=NewCount-C.Write(Buf^,NewCount);
+        // Writebuffer will loop  
+        C.WriteBuffer(Buf^,Count);
         inc(BytesNow,Count);
         if BytesNow>NextMark Then
           begin