From 27549b4e31b47fab23af0bce6bf888e4148f88e9 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Wed, 2 May 2012 13:22:08 -0400 Subject: [PATCH 1/1] Fix direct access to krb5_principal structure --- source4/rpc_server/drsuapi/writespn.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source4/rpc_server/drsuapi/writespn.c b/source4/rpc_server/drsuapi/writespn.c index 63fdef21f59..ccf612be568 100644 --- a/source4/rpc_server/drsuapi/writespn.c +++ b/source4/rpc_server/drsuapi/writespn.c @@ -57,6 +57,7 @@ static bool writespn_check_spn(struct drsuapi_bind_state *b_state, krb5_context krb_ctx; krb5_error_code kerr; krb5_principal principal; + krb5_data *component; const char *dns_name, *dnsHostName; /* The service principal name shouldn't be NULL */ @@ -112,14 +113,15 @@ static bool writespn_check_spn(struct drsuapi_bind_state *b_state, return false; } - if (principal->name.name_string.len != 2) { + if (krb5_princ_size(krb_ctx, principal) != 2) { krb5_free_principal(krb_ctx, principal); krb5_free_context(krb_ctx); talloc_free(tmp_ctx); return false; } - dns_name = principal->name.name_string.val[1]; + component = krb5_princ_component(krb_ctx, principal, 1); + dns_name = (const char *)component->data; if (strcasecmp(dns_name, dnsHostName) != 0) { krb5_free_principal(krb_ctx, principal); -- 2.34.1