idmap_hash: we don't need to call idmap_hash_initialize() over and over again
authorStefan Metzmacher <metze@samba.org>
Thu, 21 Mar 2019 09:54:49 +0000 (10:54 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 15 Oct 2019 07:36:38 +0000 (09:36 +0200)
It's always the first function that's called from idmap_methods.

This also demonstrates that we currently always return NT_STATUS_OK,
even if we haven't mapped all map entries.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/winbindd/idmap_hash/idmap_hash.c

index 8ab1699efecc455aa4fb2f19518e0d0959666086..47e4e12c896da99b3988d733126168c28ea44406 100644 (file)
@@ -131,14 +131,6 @@ static NTSTATUS idmap_hash_initialize(struct idmap_domain *dom)
                return NT_STATUS_INVALID_PARAMETER;
        }
 
-       /* If the domain SID hash table has been initialized, assume
-          that we completed this function previously */
-
-       if (dom->private_data != NULL) {
-               nt_status = NT_STATUS_OK;
-               goto done;
-       }
-
        if (!wcache_tdc_fetch_list(&dom_list, &num_domains)) {
                nt_status = NT_STATUS_TRUSTED_DOMAIN_FAILURE;
                BAIL_ON_NTSTATUS_ERROR(nt_status);
@@ -196,7 +188,6 @@ static NTSTATUS unixids_to_sids(struct idmap_domain *dom,
 {
        struct sid_hash_table *hashed_domains = talloc_get_type_abort(
                dom->private_data, struct sid_hash_table);
-       NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
        int i;
 
        /* initialize the status to avoid suprise */
@@ -204,9 +195,6 @@ static NTSTATUS unixids_to_sids(struct idmap_domain *dom,
                ids[i]->status = ID_UNKNOWN;
        }
 
-       nt_status = idmap_hash_initialize(dom);
-       BAIL_ON_NTSTATUS_ERROR(nt_status);
-
        for (i=0; ids[i]; i++) {
                uint32_t h_domain, h_rid;
 
@@ -224,8 +212,7 @@ static NTSTATUS unixids_to_sids(struct idmap_domain *dom,
                ids[i]->status = ID_MAPPED;
        }
 
-done:
-       return nt_status;
+       return NT_STATUS_OK;
 }
 
 /*********************************************************************
@@ -234,7 +221,6 @@ done:
 static NTSTATUS sids_to_unixids(struct idmap_domain *dom,
                                struct id_map **ids)
 {
-       NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
        int i;
 
        /* initialize the status to avoid suprise */
@@ -242,9 +228,6 @@ static NTSTATUS sids_to_unixids(struct idmap_domain *dom,
                ids[i]->status = ID_UNKNOWN;
        }
 
-       nt_status = idmap_hash_initialize(dom);
-       BAIL_ON_NTSTATUS_ERROR(nt_status);
-
        for (i=0; ids[i]; i++) {
                struct dom_sid sid;
                uint32_t rid;
@@ -266,8 +249,7 @@ static NTSTATUS sids_to_unixids(struct idmap_domain *dom,
                }
        }
 
-done:
-       return nt_status;
+       return NT_STATUS_OK;
 }
 
 /*********************************************************************