1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00

s:Fix uid_to_sid mapping when the idmap cache is empty.

This failed for backends other than passed, since
idmap_backends_unixid_to_sid() always asked passdb first,
which returned Success no matter whether a mapping was
found or not.

One effect wast that getpwuid failed after "net cache flush".
Only after filling the cache with a getpwnam call it succeeded.

This fix makes the behaviour of idmap_backends_unixid_to_sid()
exactly the same as that of idmap_backends_sid_to_unixid()

Michael

Signed-off-by: Michael Adam <obnox@samba.org>
This commit is contained in:
Michael Adam 2008-10-01 08:30:15 +02:00
parent 83bcc4e027
commit 9a9b64dbdf

View File

@ -735,14 +735,13 @@ NTSTATUS idmap_backends_unixid_to_sid(const char *domname, struct id_map *id)
maps[0] = id;
maps[1] = NULL;
/*
* Always give passdb a chance first
*/
dom = idmap_init_passdb_domain(NULL);
if ((dom != NULL)
&& NT_STATUS_IS_OK(dom->methods->unixids_to_sids(dom, maps))) {
return NT_STATUS_OK;
if (sid_check_is_in_builtin(id->sid)
|| (sid_check_is_in_our_domain(id->sid))) {
dom = idmap_init_passdb_domain(NULL);
if (dom == NULL) {
return NT_STATUS_NONE_MAPPED;
}
return dom->methods->unixids_to_sids(dom, maps);
}
dom = idmap_find_domain(domname);