s3:libnet_join: move kerberos_secrets_store_des_salt() out of libnet_join_derive_salt...
authorStefan Metzmacher <metze@samba.org>
Thu, 18 May 2017 13:48:49 +0000 (15:48 +0200)
committerStefan Metzmacher <metze@samba.org>
Tue, 27 Jun 2017 14:57:44 +0000 (16:57 +0200)
We should separate the calculation and the storing steps.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12782

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/libnet/libnet_join.c

index a5e863a4c7a06a769ad11d03ba707e09c90d3a4c..780c26c78e1c9ee17ddd81861c6c58a17ca38199 100644 (file)
@@ -865,7 +865,7 @@ static bool libnet_join_derive_salting_principal(TALLOC_CTX *mem_ctx,
        }
 
        r->out.krb5_salt = salt;
-       return kerberos_secrets_store_des_salt(salt);
+       return true;
 }
 
 /****************************************************************
@@ -964,6 +964,17 @@ static ADS_STATUS libnet_join_post_processing_ads(TALLOC_CTX *mem_ctx,
                return ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL);
        }
 
+       if (r->out.krb5_salt != NULL) {
+               bool ok;
+
+               ok = kerberos_secrets_store_des_salt(r->out.krb5_salt);
+               if (!ok) {
+                       libnet_join_set_error_string(mem_ctx, r,
+                               "failed to store krb5_salt");
+                       return ADS_ERROR_NT(NT_STATUS_UNSUCCESSFUL);
+               }
+       }
+
        if (!libnet_join_create_keytab(mem_ctx, r)) {
                libnet_join_set_error_string(mem_ctx, r,
                        "failed to create kerberos keytab");