From 66e575b41d20d2113c3027a547dfdbb9c174886c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mantas=20Mikul=C4=97nas?= Date: Tue, 13 Oct 2020 15:51:40 +0300 Subject: [PATCH] kdc, dsdb: correctly look up server for SPNs containing spaces MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hyper-V uses instance names like "Microsoft Virtual Console Service", which were mangled into "Microsoft\ Virtual\ Console\ Service" for the servicePrincipalName lookup. Signed-off-by: Mantas Mikulėnas --- source4/dsdb/samdb/cracknames.c | 4 +++- source4/kdc/db-glue.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source4/dsdb/samdb/cracknames.c b/source4/dsdb/samdb/cracknames.c index b4bd9d8f9c9..562cd43da02 100644 --- a/source4/dsdb/samdb/cracknames.c +++ b/source4/dsdb/samdb/cracknames.c @@ -747,7 +747,9 @@ WERROR DsCrackNameOneName(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx, domain_filter = NULL; ret = krb5_unparse_name_flags(smb_krb5_context->krb5_context, principal, - KRB5_PRINCIPAL_UNPARSE_NO_REALM, &unparsed_name_short); + KRB5_PRINCIPAL_UNPARSE_NO_REALM | + KRB5_PRINCIPAL_UNPARSE_DISPLAY, + &unparsed_name_short); if (ret) { krb5_free_principal(smb_krb5_context->krb5_context, principal); return WERR_NOT_ENOUGH_MEMORY; diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c index 5fd0f431cdf..5c8f57eb817 100644 --- a/source4/kdc/db-glue.c +++ b/source4/kdc/db-glue.c @@ -1935,7 +1935,8 @@ static krb5_error_code samba_kdc_lookup_server(krb5_context context, char *principal_string; ret = krb5_unparse_name_flags(context, principal, - KRB5_PRINCIPAL_UNPARSE_NO_REALM, + KRB5_PRINCIPAL_UNPARSE_NO_REALM | + KRB5_PRINCIPAL_UNPARSE_DISPLAY, &principal_string); if (ret != 0) { return ret; -- 2.27.0