Переглянути джерело

* Error when seek fails

git-svn-id: trunk@47056 -
(cherry picked from commit 722e8d94cde8a8d880d69088b506106413d710da)
michael 4 роки тому
батько
коміт
1bda357c8f
2 змінених файлів з 5 додано та 1 видалено
  1. 1 0
      rtl/objpas/sysconst.pp
  2. 4 1
      rtl/objpas/sysutils/filutil.inc

+ 1 - 0
rtl/objpas/sysconst.pp

@@ -100,6 +100,7 @@ const
   SSafecallException     = 'Exception in safecall method';
   SiconvError            = 'iconv error';
   SThreadError           = 'Thread error';
+  SSeekFailed            = 'Seek operation failed';
 
   STooManyOpenFiles      = 'Too many open files';
   SUnKnownRunTimeError   = 'Unknown Run-Time error : %3.3d';

+ 4 - 1
rtl/objpas/sysutils/filutil.inc

@@ -805,7 +805,10 @@ Var
 
 begin
   aLen:=FileSeek(aHandle,0,fsFromEnd);
-  FileSeek(aHandle,0,fsFromBeginning);
+  if aLen<0 then
+    Raise EInOutError.Create(SSeekFailed);
+  if FileSeek(aHandle,0,fsFromBeginning)<0 then
+    Raise EInOutError.Create(SSeekFailed);
   SetLength(Result,aLen);
   aOffset:=0;
   Repeat