From: h677 Date: Mon, 17 Nov 2003 09:59:23 +0000 (+0000) Subject: バッファーオーバーフローを起こす可能性のある関数がいたので修正 X-Git-Tag: v1_64_1_820~1676 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=fb72afe2fcb42094226aee7b530cabc5ec36f28e;p=gikonavigoeson%2Fgikonavi.git バッファーオーバーフローを起こす可能性のある関数がいたので修正 --- diff --git a/GikoSystem.pas b/GikoSystem.pas index a1a5df7..eba00db 100644 --- a/GikoSystem.pas +++ b/GikoSystem.pas @@ -1641,32 +1641,22 @@ end; *ƒXƒŒƒbƒhƒtƒ@ƒCƒ‹‚©‚çŽw’ès‚ðŽæ“¾ *************************************************************************) function TGikoSys.ReadThreadFile(FileName: string; Line: Integer): string; -const - BUFFER_SIZE = 1024; var - f: TextFile; - s: string; - num: Integer; - ArrBuff: array [1..BUFFER_SIZE] of Char; + fileTmp : TStringList; begin Result := ''; if FileExists(FileName) then begin - AssignFile(f, FileName); - System.SetTextBuf(f, ArrBuff); try - Reset(f); - num := 1; - while not Eof(f) do begin - Readln(f, s); - if Line = num then begin - Result := s; -// CloseFile(f); - Break; - end; - inc(num); - end; + try + fileTmp.LoadFromFile( FileName ); + if ( Line >= 1 ) and ( Line < fileTmp.Count + 1 ) then begin + Result := fileTmp.Strings[ Line-1 ]; + end; + except + //on EFOpenError do Result := ''; + end; finally - CloseFile(f); + fileTmp.Free; end; end; end;