diff options
author | Tom Yu <tlyu@mit.edu> | 2002-08-02 00:39:16 +0000 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2002-08-02 00:39:16 +0000 |
commit | b41aa85f5d2201194989dc6079edaeffd0ba58b5 (patch) | |
tree | bb5fb9fa207237692d41f4a850a5abc03b4ef8a3 /src/kadmin/server/server_stubs.c | |
parent | c360d766253d88e52891e5aaf8ee0cc2f4fc2a08 (diff) | |
download | krb5-b41aa85f5d2201194989dc6079edaeffd0ba58b5.tar.gz krb5-b41aa85f5d2201194989dc6079edaeffd0ba58b5.tar.xz krb5-b41aa85f5d2201194989dc6079edaeffd0ba58b5.zip |
* server_stubs.c: Check return value from unparse_name() in lots
of places. Patch from Mark Levinson; fixes [krb5-admin/1140].
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14680 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/kadmin/server/server_stubs.c')
-rw-r--r-- | src/kadmin/server/server_stubs.c | 67 |
1 files changed, 53 insertions, 14 deletions
diff --git a/src/kadmin/server/server_stubs.c b/src/kadmin/server/server_stubs.c index 9bf426733..a8bd5ce52 100644 --- a/src/kadmin/server/server_stubs.c +++ b/src/kadmin/server/server_stubs.c @@ -263,7 +263,10 @@ create_principal_1_svc(cprinc_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->rec.principal, &prime_arg); + if (krb5_unparse_name(handle->context, arg->rec.principal, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (CHANGEPW_SERVICE(rqstp) || !acl_check(handle->context, rqstp->rq_clntcred, ACL_ADD, @@ -317,7 +320,10 @@ create_principal3_1_svc(cprinc3_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->rec.principal, &prime_arg); + if (krb5_unparse_name(handle->context, arg->rec.principal, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (CHANGEPW_SERVICE(rqstp) || !acl_check(handle->context, rqstp->rq_clntcred, ACL_ADD, @@ -373,7 +379,10 @@ delete_principal_1_svc(dprinc_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (CHANGEPW_SERVICE(rqstp) || !acl_check(handle->context, rqstp->rq_clntcred, ACL_DELETE, @@ -421,7 +430,10 @@ modify_principal_1_svc(mprinc_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->rec.principal, &prime_arg); + if (krb5_unparse_name(handle->context, arg->rec.principal, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (CHANGEPW_SERVICE(rqstp) || !acl_check(handle->context, rqstp->rq_clntcred, ACL_MODIFY, @@ -475,8 +487,11 @@ rename_principal_1_svc(rprinc_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->src, &prime_arg1); - krb5_unparse_name(handle->context, arg->dest, &prime_arg2); + if (krb5_unparse_name(handle->context, arg->src, &prime_arg1) || + krb5_unparse_name(handle->context, arg->dest, &prime_arg2)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } sprintf(prime_arg, "%s to %s", prime_arg1, prime_arg2); ret.code = KADM5_OK; @@ -545,7 +560,10 @@ get_principal_1_svc(gprinc_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (! cmp_gss_krb5_name(handle, rqstp->rq_clntcred, arg->princ) && (CHANGEPW_SERVICE(rqstp) || !acl_check(handle->context, @@ -665,7 +683,10 @@ chpass_principal_1_svc(chpass_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (cmp_gss_krb5_name(handle, rqstp->rq_clntcred, arg->princ)) { ret.code = chpass_principal_wrapper((void *)handle, arg->princ, @@ -723,7 +744,10 @@ chpass_principal3_1_svc(chpass3_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (cmp_gss_krb5_name(handle, rqstp->rq_clntcred, arg->princ)) { ret.code = chpass_principal_wrapper((void *)handle, arg->princ, @@ -784,7 +808,10 @@ setv4key_principal_1_svc(setv4key_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (!(CHANGEPW_SERVICE(rqstp)) && acl_check(handle->context, rqstp->rq_clntcred, @@ -839,7 +866,10 @@ setkey_principal_1_svc(setkey_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (!(CHANGEPW_SERVICE(rqstp)) && acl_check(handle->context, rqstp->rq_clntcred, @@ -894,7 +924,10 @@ setkey_principal3_1_svc(setkey3_arg *arg, struct svc_req *rqstp) ret.code = KADM5_FAILURE; return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (!(CHANGEPW_SERVICE(rqstp)) && acl_check(handle->context, rqstp->rq_clntcred, @@ -958,7 +991,10 @@ chrand_principal_1_svc(chrand_arg *arg, struct svc_req *rqstp) free_server_handle(handle); return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (cmp_gss_krb5_name(handle, rqstp->rq_clntcred, arg->princ)) { ret.code = randkey_principal_wrapper((void *)handle, @@ -1031,7 +1067,10 @@ chrand_principal3_1_svc(chrand3_arg *arg, struct svc_req *rqstp) free_server_handle(handle); return &ret; } - krb5_unparse_name(handle->context, arg->princ, &prime_arg); + if (krb5_unparse_name(handle->context, arg->princ, &prime_arg)) { + ret.code = KADM5_BAD_PRINCIPAL; + return &ret; + } if (cmp_gss_krb5_name(handle, rqstp->rq_clntcred, arg->princ)) { ret.code = randkey_principal_wrapper((void *)handle, |