Browse Source

Bug 1646: Generated session URL for opened FTP/WebDAV session over TLS/SSL with invalid certificate includes its fingerprint

https://winscp.net/tracker/1646
(cherry picked from commit 300c511863129805d19a904719584bef1d37d477)

Source commit: cd88fad2f078caec351edad3b9b93da706d7314c
Martin Prikryl 7 years ago
parent
commit
e06479dc94
1 changed files with 8 additions and 1 deletions
  1. 8 1
      source/core/Terminal.cpp

+ 8 - 1
source/core/Terminal.cpp

@@ -4759,7 +4759,14 @@ TTerminal * __fastcall TTerminal::CreateSecondarySession(const UnicodeString & N
 void __fastcall TTerminal::FillSessionDataForCode(TSessionData * Data)
 void __fastcall TTerminal::FillSessionDataForCode(TSessionData * Data)
 {
 {
   const TSessionInfo & SessionInfo = GetSessionInfo();
   const TSessionInfo & SessionInfo = GetSessionInfo();
-  Data->HostKey = SessionInfo.HostKeyFingerprintSHA256;
+  if (!SessionInfo.HostKeyFingerprintSHA256.IsEmpty())
+  {
+    Data->HostKey = SessionInfo.HostKeyFingerprintSHA256;
+  }
+  else if (!SessionInfo.CertificateFingerprint.IsEmpty())
+  {
+    Data->HostKey = SessionInfo.CertificateFingerprint;
+  }
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 TTerminal * __fastcall TTerminal::GetCommandSession()
 TTerminal * __fastcall TTerminal::GetCommandSession()