From d9773976a7b1cd88072d587eb58dd7ca202e329e Mon Sep 17 00:00:00 2001 From: Manoj Ampalam Date: Fri, 13 Sep 2019 14:13:42 -0700 Subject: [PATCH] fix testbreak with SSH_ASKPASS change (#394) Added askpass utility to support change around SSH_ASKPASS logic. Since prompt is now passed as a commandline parameter to SSH_ASKPASS, "cmd /c echo" based logic no longer works for automated passing of password. --- contrib/win32/openssh/OpenSSHTestHelper.psm1 | 5 ++++- regress/pesterTests/CommonUtils.psm1 | 5 ++++- .../utilities/askpass_util/README.txt | 3 +++ .../utilities/askpass_util/askpass_util.cpp | 13 +++++++++++++ .../utilities/askpass_util/askpass_util.exe | Bin 0 -> 9728 bytes 5 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 regress/pesterTests/utilities/askpass_util/README.txt create mode 100644 regress/pesterTests/utilities/askpass_util/askpass_util.cpp create mode 100644 regress/pesterTests/utilities/askpass_util/askpass_util.exe diff --git a/contrib/win32/openssh/OpenSSHTestHelper.psm1 b/contrib/win32/openssh/OpenSSHTestHelper.psm1 index 774a8d228..2234b2319 100644 --- a/contrib/win32/openssh/OpenSSHTestHelper.psm1 +++ b/contrib/win32/openssh/OpenSSHTestHelper.psm1 @@ -345,10 +345,13 @@ function Get-LocalUserProfile if (-not (Test-Path $userProfileRegistry) ) { #create profile if (-not($env:DISPLAY)) { $env:DISPLAY = 1 } - $env:SSH_ASKPASS="$($env:ComSpec) /c echo $($OpenSSHTestAccountsPassword)" + $askpass_util = Join-Path $Script:E2ETestDirectory "utilities\askpass_util\askpass_util.exe" + $env:SSH_ASKPASS=$askpass_util + $env:ASKPASS_PASSWORD=$OpenSSHTestAccountsPassword $ret = ssh -p 47002 "$User@localhost" echo %userprofile% if ($env:DISPLAY -eq 1) { Remove-Item env:\DISPLAY } remove-item "env:SSH_ASKPASS" -ErrorAction SilentlyContinue + Remove-item "env:ASKPASS_PASSWORD" -ErrorAction SilentlyContinue } (Get-ItemProperty -Path $userProfileRegistry -Name 'ProfileImagePath').ProfileImagePath diff --git a/regress/pesterTests/CommonUtils.psm1 b/regress/pesterTests/CommonUtils.psm1 index 551966633..ac08aaece 100644 --- a/regress/pesterTests/CommonUtils.psm1 +++ b/regress/pesterTests/CommonUtils.psm1 @@ -97,7 +97,9 @@ function Add-PasswordSetting $platform = Get-Platform if ($platform -eq [PlatformType]::Windows) { if (-not($env:DISPLAY)) {$env:DISPLAY = 1} - $env:SSH_ASKPASS="cmd.exe /c echo $pass" + $askpass_util = Join-Path $PSScriptRoot "utilities\askpass_util\askpass_util.exe" + $env:SSH_ASKPASS=$askpass_util + $env:ASKPASS_PASSWORD=$pass } } @@ -105,6 +107,7 @@ function Remove-PasswordSetting { if ($env:DISPLAY -eq 1) { Remove-Item env:\DISPLAY } Remove-item "env:SSH_ASKPASS" -ErrorAction SilentlyContinue + Remove-item "env:ASKPASS_PASSWORD" -ErrorAction SilentlyContinue } $Taskfolder = "\OpenSSHTestTasks\" diff --git a/regress/pesterTests/utilities/askpass_util/README.txt b/regress/pesterTests/utilities/askpass_util/README.txt new file mode 100644 index 000000000..cca267b46 --- /dev/null +++ b/regress/pesterTests/utilities/askpass_util/README.txt @@ -0,0 +1,3 @@ +askpass_util is a test utility to be used in conjunction with SSH_ASKPASS in ssh. + +It simply spits out environment variable stored in ASKPASS_PASSWORD. \ No newline at end of file diff --git a/regress/pesterTests/utilities/askpass_util/askpass_util.cpp b/regress/pesterTests/utilities/askpass_util/askpass_util.cpp new file mode 100644 index 000000000..b9b5b7b2c --- /dev/null +++ b/regress/pesterTests/utilities/askpass_util/askpass_util.cpp @@ -0,0 +1,13 @@ +// askpass_util.cpp : Defines the entry point for the console application. +// + +#include +#include + +int main() +{ + //read from environment variable, spit it out on stdout + printf("%s", getenv("ASKPASS_PASSWORD")); + return 0; +} + diff --git a/regress/pesterTests/utilities/askpass_util/askpass_util.exe b/regress/pesterTests/utilities/askpass_util/askpass_util.exe new file mode 100644 index 0000000000000000000000000000000000000000..a7376719f63a64b6aef348c91ef87dfaddbfb2c8 GIT binary patch literal 9728 zcmeHNe{@vUoxhXJga8Q%NFXT6giad#k&xsiAz>1n2qTFS8AwQo0>hBJWM-I|WM|%k z;KDiJkS)_^DtoG}>roFB?b@mfmHa@I!E}txS@Oyp zc4FpRIla1dZ{;*NT>)dKzoXsn@EThjK3|7q+#wqMvd`%98P}|@H+nl-#e($oS*BRi zzxKSe=4kr)g>iaDu37jz%8%85u;2$=4lOvs}sn_Lt4XW@T)hE`>FH^w(SCHX|%aH(NIclLN9qLm!(5 znF%sd*`no>7)zldQe3i56v&xK$;@(q8&W;0%;l6Ikm++7J3$#6Va4UZaHt z`}93^X&crUtr2Hxj)g_DEC6iI#mK9#z$)06CWIsAbbX

Sc5lQ4gchPrrr!5tDAj7=t&WsG4;f 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 WVA0v4p`ziEk&?+0{1Es*o&Fo=2!O`` literal 0 HcmV?d00001