瀏覽代碼

Bug 2101: Site with a stored password protected by master password cannot be opened from command-line

https://winscp.net/tracker/2101

Source commit: b2d7a4400cfe5abf58ec2828b100f4a24d3fe372
Martin Prikryl 3 年之前
父節點
當前提交
743f220740
共有 2 個文件被更改,包括 6 次插入4 次删除
  1. 5 3
      source/core/SessionInfo.cpp
  2. 1 1
      source/core/SessionInfo.h

+ 5 - 3
source/core/SessionInfo.cpp

@@ -1104,11 +1104,11 @@ UnicodeString __fastcall TSessionLog::LogSensitive(const UnicodeString & Str)
   }
 }
 //---------------------------------------------------------------------------
-UnicodeString __fastcall TSessionLog::GetCmdLineLog(TConfiguration * AConfiguration)
+UnicodeString __fastcall TSessionLog::GetCmdLineLog()
 {
   UnicodeString Result = CmdLine;
 
-  if (!AConfiguration->LogSensitive)
+  if (!Configuration->LogSensitive)
   {
     TManagementScript Script(StoredSessions, false);
     Script.MaskPasswordInCommandLine(Result, true);
@@ -1191,7 +1191,9 @@ void __fastcall TSessionLog::DoAddStartupInfo(TAddLogEntryEvent AddLogEntry, TCo
   ADF(L"Working directory: %s", (GetCurrentDir()));
   ADF(L"Process ID: %d", (int(GetCurrentProcessId())));
   ADF(L"Ancestor processes: %s", (GetAncestorProcessNames()));
-  ADF(L"Command-line: %s", (GetCmdLineLog(AConfiguration)));
+  // This logs even passwords, contrary to a session log.
+  // GetCmdLineLog requires master password, but we do not know it yet atm.
+  ADF(L"Command-line: %s", (CmdLine));
   if (AConfiguration->ActualLogProtocol >= 1)
   {
     GetGlobalOptions()->LogOptions(AddLogEntry);

+ 1 - 1
source/core/SessionInfo.h

@@ -300,7 +300,7 @@ private:
   void __fastcall DoAddStartupInfo(TSessionData * Data);
   UnicodeString __fastcall GetTlsVersionName(TTlsVersion TlsVersion);
   UnicodeString __fastcall LogSensitive(const UnicodeString & Str);
-  static UnicodeString __fastcall GetCmdLineLog(TConfiguration * AConfiguration);
+  UnicodeString __fastcall GetCmdLineLog();
   void __fastcall CheckSize(__int64 Addition);
   UnicodeString __fastcall LogPartFileName(const UnicodeString & BaseName, int Index);
   void __fastcall DoAddStartupInfoEntry(const UnicodeString & S);