mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
r17406: We need to do a translation of winbind separator -> '\\' in
lookup_name_smbconf, otherwise
force user = domain+administrator
can not work. Also attempt to fix the 'valid users = domain+group' bug at the
same time.
Volker
(This used to be commit 255475901c
)
This commit is contained in:
parent
7cc7fc51c6
commit
6361d151a4
@ -395,8 +395,25 @@ BOOL lookup_name_smbconf(TALLOC_CTX *mem_ctx,
|
||||
char *qualified_name;
|
||||
|
||||
/* NB. No winbindd_separator here as lookup_name needs \\' */
|
||||
if (strchr_m(full_name, '\\')) {
|
||||
if (strchr_m(full_name, *lp_winbind_separator())) {
|
||||
|
||||
/* The name is already qualified with a domain. */
|
||||
|
||||
if (*lp_winbind_separator() != '\\') {
|
||||
char *p, *tmp;
|
||||
|
||||
/* lookup_name() needs '\\' as a separator */
|
||||
|
||||
tmp = talloc_strdup(mem_ctx, full_name);
|
||||
if (!tmp) {
|
||||
return False;
|
||||
}
|
||||
p = strchr_m(tmp, *lp_winbind_separator());
|
||||
SMB_ASSERT(p != NULL);
|
||||
*p = '\\';
|
||||
full_name = tmp;
|
||||
}
|
||||
|
||||
return lookup_name(mem_ctx, full_name, flags,
|
||||
ret_domain, ret_name,
|
||||
ret_sid, ret_type);
|
||||
|
@ -97,7 +97,7 @@ static BOOL token_contains_name(TALLOC_CTX *mem_ctx,
|
||||
}
|
||||
|
||||
if (!do_group_checks(&name, &prefix)) {
|
||||
if (!lookup_name(mem_ctx, name, LOOKUP_NAME_ALL,
|
||||
if (!lookup_name_smbconf(mem_ctx, name, LOOKUP_NAME_ALL,
|
||||
NULL, NULL, &sid, &type)) {
|
||||
DEBUG(5, ("lookup_name %s failed\n", name));
|
||||
return False;
|
||||
@ -112,7 +112,7 @@ static BOOL token_contains_name(TALLOC_CTX *mem_ctx,
|
||||
|
||||
for (/* initialized above */ ; *prefix != '\0'; prefix++) {
|
||||
if (*prefix == '+') {
|
||||
if (!lookup_name(mem_ctx, name,
|
||||
if (!lookup_name_smbconf(mem_ctx, name,
|
||||
LOOKUP_NAME_ALL|LOOKUP_NAME_GROUP,
|
||||
NULL, NULL, &sid, &type)) {
|
||||
DEBUG(5, ("lookup_name %s failed\n", name));
|
||||
|
Loading…
Reference in New Issue
Block a user