diff options
author | Günther Deschner <gd@samba.org> | 2014-04-30 10:26:17 +0200 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2014-08-08 06:02:34 +0200 |
commit | feabae7417213c071e98f05995601151a29353e7 (patch) | |
tree | c27c05ffe093cfc860c29da58099aaad5efe0b6a /source4/dsdb/samdb/ldb_modules/acl.c | |
parent | f5ce0ee45a1403484bede07b6596a885246913c8 (diff) | |
download | samba-feabae7417213c071e98f05995601151a29353e7.tar.gz |
s4-dsdb/samdb: use smb_krb5_principal_get_comp_string in ldb ACL module.
Guenther
Signed-off-by: Günther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/acl.c')
-rw-r--r-- | source4/dsdb/samdb/ldb_modules/acl.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/acl.c b/source4/dsdb/samdb/ldb_modules/acl.c index 75b871f0d24..b4f7cef1381 100644 --- a/source4/dsdb/samdb/ldb_modules/acl.c +++ b/source4/dsdb/samdb/ldb_modules/acl.c @@ -552,14 +552,17 @@ static int acl_validate_spn_value(TALLOC_CTX *mem_ctx, return LDB_ERR_CONSTRAINT_VIOLATION; } - if (principal->name.name_string.len < 2) { + if (krb5_princ_size(krb_ctx, principal) < 2) { goto fail; } - instanceName = principal->name.name_string.val[1]; - serviceType = principal->name.name_string.val[0]; - if (principal->name.name_string.len == 3) { - serviceName = principal->name.name_string.val[2]; + instanceName = smb_krb5_principal_get_comp_string(mem_ctx, krb_ctx, + principal, 1); + serviceType = smb_krb5_principal_get_comp_string(mem_ctx, krb_ctx, + principal, 0); + if (krb5_princ_size(krb_ctx, principal) == 3) { + serviceName = smb_krb5_principal_get_comp_string(mem_ctx, krb_ctx, + principal, 2); } else { serviceName = NULL; } |