summaryrefslogtreecommitdiffstats
path: root/src/kadmin/server
diff options
context:
space:
mode:
authorGreg Hudson <ghudson@mit.edu>2013-07-19 10:08:08 -0400
committerGreg Hudson <ghudson@mit.edu>2013-07-19 10:08:08 -0400
commit9a735044d70304f22a013a81ab5c2901a64d3719 (patch)
tree47bc12ba6f796c2970abbc2867b281cbccad0943 /src/kadmin/server
parent4fb415e9357b6fb9593dc9b52aa93ffe85524806 (diff)
downloadkrb5-9a735044d70304f22a013a81ab5c2901a64d3719.tar.gz
krb5-9a735044d70304f22a013a81ab5c2901a64d3719.tar.xz
krb5-9a735044d70304f22a013a81ab5c2901a64d3719.zip
Allow self-service for kadmin purgekeys RPC
Make the purgekeys RPC allow self-service, like the chpass and chrand RPCs. ticket: 7681 (new)
Diffstat (limited to 'src/kadmin/server')
-rw-r--r--src/kadmin/server/server_stubs.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/kadmin/server/server_stubs.c b/src/kadmin/server/server_stubs.c
index 0de627f47..eb50c2f7b 100644
--- a/src/kadmin/server/server_stubs.c
+++ b/src/kadmin/server/server_stubs.c
@@ -1579,9 +1579,10 @@ purgekeys_2_svc(purgekeys_arg *arg, struct svc_req *rqstp)
goto exit_func;
}
- if (CHANGEPW_SERVICE(rqstp)
- || !kadm5int_acl_check(handle->context, rqst2name(rqstp), ACL_MODIFY,
- arg->princ, NULL)) {
+ if (!cmp_gss_krb5_name(handle, rqst2name(rqstp), arg->princ) &&
+ (CHANGEPW_SERVICE(rqstp)
+ || !kadm5int_acl_check(handle->context, rqst2name(rqstp), ACL_MODIFY,
+ arg->princ, NULL))) {
ret.code = KADM5_AUTH_MODIFY;
log_unauth(funcname, prime_arg, &client_name, &service_name, rqstp);
} else {