mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
r21881: Make sure we are very specific when testing whether a backand can handle a
particular SID. Make sure that the passdb backend will accept the same set range of local SIDs that the idmap system sends it. Simo, Jerry - this is a 3_0_25 candidate. Can you please review?
This commit is contained in:
parent
d3f3ced6c8
commit
86a70adb6a
@ -599,12 +599,18 @@ struct winbindd_domain *find_domain_from_name(const char *domain_name)
|
||||
struct winbindd_domain *find_domain_from_sid_noinit(const DOM_SID *sid)
|
||||
{
|
||||
struct winbindd_domain *domain;
|
||||
uint32 discard;
|
||||
|
||||
/* Search through list */
|
||||
|
||||
for (domain = domain_list(); domain != NULL; domain = domain->next) {
|
||||
if (sid_compare_domain(sid, &domain->sid) == 0)
|
||||
/* We need to use sid_peek_check_rid, because we want
|
||||
* to make sure that the SIDs we send to the backends are
|
||||
* as specific as possible.
|
||||
*/
|
||||
if (sid_peek_check_rid(&domain->sid, sid, &discard) == 0) {
|
||||
return domain;
|
||||
}
|
||||
}
|
||||
|
||||
/* Not found */
|
||||
|
@ -1305,7 +1305,8 @@ static BOOL pdb_default_sid_to_id(struct pdb_methods *methods,
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (sid_peek_check_rid(&global_sid_Builtin, sid, &rid)) {
|
||||
if (sid_check_is_in_builtin(sid) ||
|
||||
sid_check_is_in_wellknown_domain(sid)) {
|
||||
/* Here we only have aliases */
|
||||
GROUP_MAP map;
|
||||
if (!NT_STATUS_IS_OK(methods->getgrsid(methods, &map, *sid))) {
|
||||
|
Loading…
Reference in New Issue
Block a user