summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Sutton <josephsutton@catalyst.net.nz>2022-05-18 17:11:49 +1200
committerJule Anger <janger@samba.org>2022-07-24 11:42:02 +0200
commit69e742e6208bd471eb509795bd753a0c98392bf6 (patch)
treeb724c093fdeb881b74ab5204a1dcd05a92775ae9
parent6c4fd575d706b2695090941ad7947b30abdb9071 (diff)
downloadsamba-69e742e6208bd471eb509795bd753a0c98392bf6.tar.gz
s4:kpasswd: Restructure code for clarity
View with 'git show -b'. Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andreas Schneider <asn@samba.org>
-rw-r--r--source4/kdc/kpasswd-service-heimdal.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/source4/kdc/kpasswd-service-heimdal.c b/source4/kdc/kpasswd-service-heimdal.c
index 1a6c2b60d03..a0352d1ad35 100644
--- a/source4/kdc/kpasswd-service-heimdal.c
+++ b/source4/kdc/kpasswd-service-heimdal.c
@@ -160,30 +160,7 @@ static krb5_error_code kpasswd_set_password(struct kdc_server *kdc,
return 0;
}
- if (chpw.targname != NULL && chpw.targrealm != NULL) {
- code = krb5_build_principal_ext(context,
- &target_principal,
- strlen(*chpw.targrealm),
- *chpw.targrealm,
- 0);
- if (code != 0) {
- free_ChangePasswdDataMS(&chpw);
- return kpasswd_make_error_reply(mem_ctx,
- KRB5_KPASSWD_MALFORMED,
- "Failed to parse principal",
- kpasswd_reply);
- }
- code = copy_PrincipalName(chpw.targname,
- &target_principal->name);
- if (code != 0) {
- free_ChangePasswdDataMS(&chpw);
- krb5_free_principal(context, target_principal);
- return kpasswd_make_error_reply(mem_ctx,
- KRB5_KPASSWD_MALFORMED,
- "Failed to parse principal",
- kpasswd_reply);
- }
- } else {
+ if (chpw.targname == NULL || chpw.targrealm == NULL) {
free_ChangePasswdDataMS(&chpw);
return kpasswd_change_password(kdc,
mem_ctx,
@@ -193,7 +170,28 @@ static krb5_error_code kpasswd_set_password(struct kdc_server *kdc,
kpasswd_reply,
error_string);
}
+ code = krb5_build_principal_ext(context,
+ &target_principal,
+ strlen(*chpw.targrealm),
+ *chpw.targrealm,
+ 0);
+ if (code != 0) {
+ free_ChangePasswdDataMS(&chpw);
+ return kpasswd_make_error_reply(mem_ctx,
+ KRB5_KPASSWD_MALFORMED,
+ "Failed to parse principal",
+ kpasswd_reply);
+ }
+ code = copy_PrincipalName(chpw.targname,
+ &target_principal->name);
free_ChangePasswdDataMS(&chpw);
+ if (code != 0) {
+ krb5_free_principal(context, target_principal);
+ return kpasswd_make_error_reply(mem_ctx,
+ KRB5_KPASSWD_MALFORMED,
+ "Failed to parse principal",
+ kpasswd_reply);
+ }
if (target_principal->name.name_string.len >= 2) {
is_service_principal = true;