From: Andreas Schneider Date: Thu, 6 Oct 2016 06:47:40 +0000 (+0200) Subject: auth: Return username in get_principal if it contains an '@' X-Git-Url: http://git.samba.org/?p=metze%2Fsamba%2Fwip.git;a=commitdiff_plain;h=cda75698723794949fc27f16edfe037a2c7c56a3 auth: Return username in get_principal if it contains an '@' Signed-off-by: Andreas Schneider --- diff --git a/auth/credentials/credentials.c b/auth/credentials/credentials.c index 3571468ea274..34eb5b6f95ab 100644 --- a/auth/credentials/credentials.c +++ b/auth/credentials/credentials.c @@ -196,6 +196,9 @@ _PUBLIC_ const char *cli_credentials_get_bind_dn(struct cli_credentials *cred) */ _PUBLIC_ char *cli_credentials_get_principal_and_obtained(struct cli_credentials *cred, TALLOC_CTX *mem_ctx, enum credentials_obtained *obtained) { + const char *username = cli_credentials_get_username(cred); + const char *p; + if (cred->machine_account_pending) { cli_credentials_set_machine_account(cred, cred->machine_account_pending_lp_ctx); @@ -212,6 +215,12 @@ _PUBLIC_ char *cli_credentials_get_principal_and_obtained(struct cli_credentials } } + p = strchr_m(username, '@'); + if (p != NULL) { + *obtained = cred->username_obtained; + return talloc_strdup(mem_ctx, username); + } + if (cred->principal_obtained < cred->username_obtained || cred->principal_obtained < MAX(cred->domain_obtained, cred->realm_obtained)) { const char *effective_username = NULL;