]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:kdc: Inline samba_get_requester_sid_pac_blob()
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Thu, 24 Aug 2023 23:35:12 +0000 (11:35 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 14 Sep 2023 21:35:29 +0000 (21:35 +0000)
A wrapper doesn’t add much utility to a function this small. We might as
well join these two into a single function.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/pac-glue.c

index e3a7c83d0b7eb0de01b67467c2f3e566c160523f..374c85fad34d578c4d5841a80a2676aaffae5869 100644 (file)
@@ -128,38 +128,6 @@ NTSTATUS samba_get_logon_info_pac_blob(TALLOC_CTX *mem_ctx,
        return NT_STATUS_OK;
 }
 
-static
-NTSTATUS samba_get_requester_sid_pac_blob(TALLOC_CTX *mem_ctx,
-                                         const struct auth_user_info_dc *info,
-                                         DATA_BLOB *requester_sid_blob)
-{
-       enum ndr_err_code ndr_err;
-       NTSTATUS nt_status;
-
-       if (requester_sid_blob != NULL) {
-               *requester_sid_blob = data_blob_null;
-       }
-
-       if (requester_sid_blob != NULL && info->num_sids > 0) {
-               union PAC_INFO pac_requester_sid = {};
-
-               pac_requester_sid.requester_sid.sid = info->sids[PRIMARY_USER_SID_INDEX].sid;
-
-               ndr_err = ndr_push_union_blob(requester_sid_blob, mem_ctx,
-                                             &pac_requester_sid,
-                                             PAC_TYPE_REQUESTER_SID,
-                                             (ndr_push_flags_fn_t)ndr_push_PAC_INFO);
-               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-                       nt_status = ndr_map_error2ntstatus(ndr_err);
-                       DBG_WARNING("PAC_REQUESTER_SID (presig) push failed: %s\n",
-                                   nt_errstr(nt_status));
-                       return nt_status;
-               }
-       }
-
-       return NT_STATUS_OK;
-}
-
 static
 NTSTATUS samba_get_upn_info_pac_blob(TALLOC_CTX *mem_ctx,
                                     const struct auth_user_info_dc *info,
@@ -1068,13 +1036,25 @@ NTSTATUS samba_kdc_get_requester_sid_blob(TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       nt_status = samba_get_requester_sid_pac_blob(mem_ctx,
-                                                    user_info_dc,
-                                                    requester_sid_blob);
-       if (!NT_STATUS_IS_OK(nt_status)) {
-               DBG_ERR("Building PAC REQUESTER SID failed: %s\n",
-                       nt_errstr(nt_status));
-               return nt_status;
+       if (user_info_dc->num_sids > 0) {
+               union PAC_INFO pac_requester_sid = {};
+               enum ndr_err_code ndr_err;
+
+               pac_requester_sid.requester_sid.sid = user_info_dc->sids[PRIMARY_USER_SID_INDEX].sid;
+
+               ndr_err = ndr_push_union_blob(requester_sid_blob, mem_ctx,
+                                             &pac_requester_sid,
+                                             PAC_TYPE_REQUESTER_SID,
+                                             (ndr_push_flags_fn_t)ndr_push_PAC_INFO);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       nt_status = ndr_map_error2ntstatus(ndr_err);
+                       DBG_WARNING("PAC_REQUESTER_SID (presig) push failed: %s\n",
+                                   nt_errstr(nt_status));
+                       DBG_ERR("Building PAC REQUESTER SID failed: %s\n",
+                               nt_errstr(nt_status));
+
+                       return nt_status;
+               }
        }
 
        *_requester_sid_blob = requester_sid_blob;