Browse Source

#256 Prevent saving incorrect filename

circular17 3 years ago
parent
commit
aa1afa6c9f
2 changed files with 11 additions and 0 deletions
  1. 5 0
      lazpaint/dialog/ubrowseimages.pas
  2. 6 0
      lazpaint/ufilesystem.pas

+ 5 - 0
lazpaint/dialog/ubrowseimages.pas

@@ -1128,6 +1128,11 @@ begin
           if DefaultExtension <> '' then
             FFilename += DefaultExtension;
       end;
+      if not FileManager.IsValidFileName(FFilename) and IsSaveDialog then
+      begin
+        ShowMessage(rsInvalidName);
+        exit;
+      end;
       if FileManager.FileExists(FFilename) and IsSaveDialog and OverwritePrompt then
       begin
         if QuestionDlg(rsSave, rsOverwriteFile, mtConfirmation, [mrOk, rsOkay, mrCancel, rsCancel],0) <> mrOk then exit;

+ 6 - 0
lazpaint/ufilesystem.pas

@@ -88,6 +88,7 @@ type
           AResult: TFileInfoList; AFileSortType: TFileSortType = fstNone);
     function IsDirectory(APathUTF8: string): boolean;
     function IsDirectoryEmpty(APathUTF8: string): boolean;
+    function IsValidFileName(AName: string): boolean;
     procedure CreateDirectory(APathUTF8: string);
     function DeleteDirectory(APathUTF8: string): boolean;
     function FileExists(AFilenameUTF8: string): boolean;
@@ -1137,6 +1138,11 @@ begin
   result := true;
 end;
 
+function TFileManager.IsValidFileName(AName: string): boolean;
+begin
+  result := AName = GetValidFilename(AName);
+end;
+
 procedure TFileManager.CreateDirectory(APathUTF8: string);
 var
   str: TStream;