Sfoglia il codice sorgente

Bug 1934: Failure when S3 bucket contains a folder with an empty name

https://winscp.net/tracker/1934

Source commit: a535c6bc70045df9800a0c51526d9126d6f1cd80
Martin Prikryl 4 anni fa
parent
commit
23ad9a2ff2
1 ha cambiato i file con 11 aggiunte e 6 eliminazioni
  1. 11 6
      source/core/S3FileSystem.cpp

+ 11 - 6
source/core/S3FileSystem.cpp

@@ -831,12 +831,17 @@ S3Status TS3FileSystem::LibS3ListBucketCallback(
 
   for (int Index = 0; Index < CommonPrefixesCount; Index++)
   {
-    std::unique_ptr<TRemoteFile> File(new TRemoteFile(NULL));
-    File->Terminal = Data.FileSystem->FTerminal;
-    File->FileName = UnixExtractFileName(UnixExcludeTrailingBackslash(StrFromS3(CommonPrefixes[Index])));
-    File->Type = FILETYPE_DIRECTORY;
-    File->ModificationFmt = mfNone;
-    Data.FileList->AddFile(File.release());
+    UnicodeString CommonPrefix = StrFromS3(CommonPrefixes[Index]);
+    // Reported only by one user, but should do no harm.
+    if (CommonPrefix != L"/")
+    {
+      std::unique_ptr<TRemoteFile> File(new TRemoteFile(NULL));
+      File->Terminal = Data.FileSystem->FTerminal;
+      File->FileName = UnixExtractFileName(UnixExcludeTrailingBackslash(CommonPrefix));
+      File->Type = FILETYPE_DIRECTORY;
+      File->ModificationFmt = mfNone;
+      Data.FileList->AddFile(File.release());
+    }
   }
 
   return S3StatusOK;