diff --git a/dlls/credui/credui_main.c b/dlls/credui/credui_main.c index 83fb183e983..e7960d480d8 100644 --- a/dlls/credui/credui_main.c +++ b/dlls/credui/credui_main.c @@ -142,6 +142,8 @@ static void CredDialogFillUsernameCombo(HWND hwndUsername, struct cred_dialog_pa for (i = 0; i < count; i++) { COMBOBOXEXITEMW comboitem; + DWORD j; + BOOL duplicate = FALSE; if (params->dwFlags & CREDUI_FLAGS_GENERIC_CREDENTIALS) { @@ -154,6 +156,17 @@ static void CredDialogFillUsernameCombo(HWND hwndUsername, struct cred_dialog_pa continue; } + /* don't add another item with the same name if we've already added it */ + for (j = 0; j < i; j++) + if (!strcmpW(credentials[i]->UserName, credentials[j]->UserName)) + { + duplicate = TRUE; + break; + } + + if (duplicate) + continue; + comboitem.mask = CBEIF_TEXT; comboitem.iItem = -1; comboitem.pszText = credentials[i]->UserName;