mirror of
https://github.com/samba-team/samba.git
synced 2025-02-01 05:47:28 +03:00
idmap_hash: return ID_REQUIRE_TYPE only if there's a chance to get a mapping later
If we are going to return ID_UNMAPPED later anyway, there's no need to defer that decision by returning ID_REQUIRE_TYPE first. BUG: https://bugzilla.samba.org/show_bug.cgi?id=15319 Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> (cherry picked from commit 42dcb3db05530179a991fe58e7b96b52bbbcc607)
This commit is contained in:
parent
da96349627
commit
e79be5ed06
@ -261,6 +261,24 @@ static NTSTATUS idmap_hash_sid_to_id(struct sid_hash_table *hashed_domains,
|
||||
uint32_t rid;
|
||||
uint32_t h_domain, h_rid;
|
||||
|
||||
id->status = ID_UNMAPPED;
|
||||
|
||||
sid_copy(&sid, id->sid);
|
||||
sid_split_rid(&sid, &rid);
|
||||
|
||||
h_domain = hash_domain_sid(&sid);
|
||||
h_rid = hash_rid(rid);
|
||||
|
||||
/* Check that both hashes are non-zero*/
|
||||
if (h_domain == 0) {
|
||||
/* keep ID_UNMAPPED */
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
if (h_rid == 0) {
|
||||
/* keep ID_UNMAPPED */
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
if (id->xid.type == ID_TYPE_NOT_SPECIFIED) {
|
||||
/*
|
||||
* idmap_hash used to bounce back the requested type,
|
||||
@ -280,24 +298,6 @@ static NTSTATUS idmap_hash_sid_to_id(struct sid_hash_table *hashed_domains,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
id->status = ID_UNMAPPED;
|
||||
|
||||
sid_copy(&sid, id->sid);
|
||||
sid_split_rid(&sid, &rid);
|
||||
|
||||
h_domain = hash_domain_sid(&sid);
|
||||
h_rid = hash_rid(rid);
|
||||
|
||||
/* Check that both hashes are non-zero*/
|
||||
if (h_domain == 0) {
|
||||
/* keep ID_UNMAPPED */
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
if (h_rid == 0) {
|
||||
/* keep ID_UNMAPPED */
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* idmap_hash used to bounce back the requested type,
|
||||
* which was ID_TYPE_UID, ID_TYPE_GID or
|
||||
|
Loading…
x
Reference in New Issue
Block a user