summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/acl.c
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2014-04-30 10:26:17 +0200
committerAndrew Bartlett <abartlet@samba.org>2014-08-08 06:02:34 +0200
commitfeabae7417213c071e98f05995601151a29353e7 (patch)
treec27c05ffe093cfc860c29da58099aaad5efe0b6a /source4/dsdb/samdb/ldb_modules/acl.c
parentf5ce0ee45a1403484bede07b6596a885246913c8 (diff)
downloadsamba-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.c13
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;
}