From 752f6b5591e49151b2607bbff1dbe76605a4641e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Thu, 14 Aug 2025 23:22:33 +0200 Subject: [PATCH] [MSGINA] Erase passwords & set focus back to the password field, in failure cases (#8337) Do this in the "Logon", "Unlock Computer", and "Change Password" dialogs. --- dll/win32/msgina/gui.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dll/win32/msgina/gui.c b/dll/win32/msgina/gui.c index d5ffa3c1e19..b1db8d2b0f9 100644 --- a/dll/win32/msgina/gui.c +++ b/dll/win32/msgina/gui.c @@ -793,6 +793,7 @@ ChangePasswordDialogProc( } else { + SetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_OLDPWD, NULL); SetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_NEWPWD1, NULL); SetDlgItemTextW(hwndDlg, IDC_CHANGEPWD_NEWPWD2, NULL); SendMessageW(hwndDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hwndDlg, IDC_CHANGEPWD_OLDPWD), TRUE); @@ -1364,7 +1365,14 @@ LogonDialogProc( { case IDOK: if (DoLogon(hwndDlg, pDlgData->pgContext)) + { EndDialog(hwndDlg, WLX_SAS_ACTION_LOGON); + } + else + { + SetDlgItemTextW(hwndDlg, IDC_LOGON_PASSWORD, NULL); + SendMessageW(hwndDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hwndDlg, IDC_LOGON_PASSWORD), TRUE); + } return TRUE; case IDCANCEL: @@ -1625,7 +1633,14 @@ UnlockDialogProc( { case IDOK: if (DoUnlock(hwndDlg, pDlgData->pgContext, &result)) + { EndDialog(hwndDlg, result); + } + else + { + SetDlgItemTextW(hwndDlg, IDC_UNLOCK_PASSWORD, NULL); + SendMessageW(hwndDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hwndDlg, IDC_UNLOCK_PASSWORD), TRUE); + } return TRUE; case IDCANCEL: