瀏覽代碼

* check CurrentPPULongVersion in ppumove

git-svn-id: trunk@41866 -
Jonas Maebe 6 年之前
父節點
當前提交
349bb2ff38
共有 1 個文件被更改,包括 14 次插入1 次删除
  1. 14 1
      compiler/utils/ppumove.pp

+ 14 - 1
compiler/utils/ppumove.pp

@@ -247,7 +247,8 @@ Var
   f      : file;
   ext,
   s      : string;
-  ppuversion : dword;
+  ppuversion,
+  ppulongversion: dword;
 begin
   DoPPU:=false;
   If Not Quiet then
@@ -328,6 +329,18 @@ begin
      end;
     if b<>untilb then
      begin
+       if b=ibextraheader then
+         begin
+           ppulongversion:=cardinal(inppu.getlongint);
+           if ppulongversion<>CurrentPPULongVersion then
+             begin
+               inppu.free;
+               outppu.free;
+               Error('Error: Wrong PPU Long Version '+tostr(ppulongversion)+' in '+PPUFn,false);
+               Exit;
+             end;
+           outppu.putlongint(longint(ppulongversion));
+         end;
        repeat
          inppu.getdatabuf(buffer^,bufsize,l);
          outppu.putdata(buffer^,l);