LazUtils: Prevent CopyDirTree copying to a subdirectory of source. Issue #28841.

git-svn-id: trunk@51033 -
This commit is contained in:
juha 2015-12-25 18:39:32 +00:00
parent 81733b2e74
commit 6faa4e893c
2 changed files with 6 additions and 3 deletions

View File

@ -704,8 +704,11 @@ begin
Flags:=Flags+[cffCreateDestDirectory];
Searcher.FFlags:=Flags;
Searcher.FCopyFailedCount:=0;
Searcher.FSourceDir:=SetDirSeparators(SourceDir);
Searcher.FTargetDir:=SetDirSeparators(TargetDir);
Searcher.FSourceDir:=TrimFilename(SetDirSeparators(SourceDir));
Searcher.FTargetDir:=TrimFilename(SetDirSeparators(TargetDir));
// Don't even try to copy to a subdirectory of SourceDir.
if {$if defined(Windows) or defined(darwin)}AnsiStartsText{$ELSE}AnsiStartsStr{$ENDIF}
(SourceDir, TargetDir) then Exit;
Searcher.Search(SourceDir);
Result:=True;
finally

View File

@ -32,7 +32,7 @@ unit FileUtil;
interface
uses
Classes, SysUtils,
Classes, SysUtils, strutils,
Masks, LazUTF8, LazFileUtils;
{$if defined(Windows) or defined(darwin)}