s4:rpc_server: Use dcesrv_lsa_CreateTrustedDomain_common() for lsa_CreateTrustedDomainEx2
authorAndreas Schneider <asn@samba.org>
Fri, 22 Dec 2023 13:58:26 +0000 (14:58 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 9 Apr 2024 22:52:38 +0000 (22:52 +0000)
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/rpc_server/lsa/dcesrv_lsa.c

index 220f2a5442c92f0b68c7f90c787ec21c07069da7..6563b4351942c2e09cbea9ab427759a007a691f1 100644 (file)
@@ -1711,6 +1711,10 @@ static NTSTATUS dcesrv_lsa_CreateTrustedDomainEx2(struct dcesrv_call_state *dce_
                                           struct lsa_CreateTrustedDomainEx2 *r)
 {
        struct dcesrv_handle *policy_handle = NULL;
+       struct trustDomainPasswords auth_struct = {
+               .incoming_size = 0,
+       };
+       DATA_BLOB auth_blob = data_blob_null;
        NTSTATUS status;
 
        ZERO_STRUCTP(r->out.trustdom_handle);
@@ -1725,13 +1729,24 @@ static NTSTATUS dcesrv_lsa_CreateTrustedDomainEx2(struct dcesrv_call_state *dce_
                return status;
        }
 
-       return dcesrv_lsa_CreateTrustedDomain_base(
-               dce_call,
-               mem_ctx,
-               policy_handle,
-               r,
-               NDR_LSA_CREATETRUSTEDDOMAINEX2,
-               NULL);
+       auth_blob = data_blob_const(r->in.auth_info_internal->auth_blob.data,
+                                   r->in.auth_info_internal->auth_blob.size);
+
+       status = get_trustdom_auth_blob(dce_call,
+                                       mem_ctx,
+                                       &auth_blob,
+                                       &auth_struct);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       return dcesrv_lsa_CreateTrustedDomain_common(dce_call,
+                                                    mem_ctx,
+                                                    policy_handle,
+                                                    r->in.access_mask,
+                                                    r->in.info,
+                                                    &auth_struct,
+                                                    &r->out.trustdom_handle);
 }
 /*
   lsa_CreateTrustedDomainEx