From 909ffa4ee39c34a6510cc891356d1dd14891f89c Mon Sep 17 00:00:00 2001 From: marco Date: Tue, 8 Jun 2010 08:57:16 +0000 Subject: [PATCH] * more range check fixes (more serious this time) from mantis 16669 * one more writeln under chm_debug to avoid problems with gui-only apps. git-svn-id: trunk@15397 - --- packages/chm/src/chmtypes.pas | 2 ++ packages/chm/src/chmwriter.pas | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/chm/src/chmtypes.pas b/packages/chm/src/chmtypes.pas index ffe8a5f540..05a70ca60b 100644 --- a/packages/chm/src/chmtypes.pas +++ b/packages/chm/src/chmtypes.pas @@ -356,7 +356,9 @@ var end; begin if FItemCount < 1 then begin + {$ifdef chm_debug} WriteLn('WHAT ARE YOU DOING!!'); + {$endif} Dec(AIndex); Exit; end; diff --git a/packages/chm/src/chmwriter.pas b/packages/chm/src/chmwriter.pas index 4a770123f1..bbd67072ac 100644 --- a/packages/chm/src/chmwriter.pas +++ b/packages/chm/src/chmwriter.pas @@ -1371,7 +1371,8 @@ function TChmWriter.AddURL ( AURL: String; TopicsIndex: DWord ) : LongWord; FAvlUrlStr.Add(UrlStrRec); FURLSTRStream.WriteDWord(NToLE(DWord(0))); // URL Offset for topic after the the "Local" value FURLSTRStream.WriteDWord(NToLE(DWord(0))); // Offset of FrameName?? - FURLSTRStream.Write(AString[1], Length(AString)); + if Length(AString) > 0 then + FURLSTRStream.Write(AString[1], Length(AString)); FURLSTRStream.WriteByte(0); //NT end; @@ -1390,7 +1391,7 @@ function TChmWriter.AddURL ( AURL: String; TopicsIndex: DWord ) : LongWord; var UrlIndex : Integer; begin - if AURL[1] = '/' then Delete(AURL,1,1); + if (Length(AURL) > 0) and (AURL[1] = '/') then Delete(AURL,1,1); UrlIndex:=LookupUrlString(AUrl); //if $1000 - (FURLTBLStream.Size mod $1000) = 4 then // we are at 4092