[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Wed Jul 29 07:18:16 UTC 2015


The branch, master has been updated
       via  dc99d45 s3-passdb: Respect LOOKUP_NAME_GROUP flag in sid lookup.
      from  adbd6d3 pidl: merge multiple 'genpad' implementations into one.

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit dc99d451bf23668d73878847219682fced547622
Author: Justin Maggard <jmaggard at netgear.com>
Date:   Tue Jul 21 15:17:30 2015 -0700

    s3-passdb: Respect LOOKUP_NAME_GROUP flag in sid lookup.
    
    Somewhere along the line, a config line like "valid users = @foo"
    broke when "foo" also exists as a user.
    
    user_ok_token() already does the right thing by adding the LOOKUP_NAME_GROUP
    flag; but lookup_name() was not respecting that flag, and went ahead and looked
    for users anyway.
    
    Regression test to follow.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11320
    
    Signed-off-by: Justin Maggard <jmaggard at netgear.com>
    Reviewed-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Marc Muehlfeld <mmuehlfeld at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Tue Jul 28 21:35:58 CEST 2015 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 source3/passdb/lookup_sid.c | 4 ++--
 source3/passdb/lookup_sid.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
index 3cc64de..3f99ee1 100644
--- a/source3/passdb/lookup_sid.c
+++ b/source3/passdb/lookup_sid.c
@@ -120,7 +120,7 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
 			goto ok;
 	}
 
-	if (((flags & LOOKUP_NAME_NO_NSS) == 0)
+	if (((flags & (LOOKUP_NAME_NO_NSS|LOOKUP_NAME_GROUP)) == 0)
 	    && strequal(domain, unix_users_domain_name())) {
 		if (lookup_unix_user_name(name, &sid)) {
 			type = SID_NAME_USER;
@@ -293,7 +293,7 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
 	/* 11. Ok, windows would end here. Samba has two more options:
                Unmapped users and unmapped groups */
 
-	if (((flags & LOOKUP_NAME_NO_NSS) == 0)
+	if (((flags & (LOOKUP_NAME_NO_NSS|LOOKUP_NAME_GROUP)) == 0)
 	    && lookup_unix_user_name(name, &sid)) {
 		domain = talloc_strdup(tmp_ctx, unix_users_domain_name());
 		type = SID_NAME_USER;
diff --git a/source3/passdb/lookup_sid.h b/source3/passdb/lookup_sid.h
index 872f4ef..8b5edf6 100644
--- a/source3/passdb/lookup_sid.h
+++ b/source3/passdb/lookup_sid.h
@@ -31,7 +31,7 @@ struct unixid;
 #define LOOKUP_NAME_NONE		0x00000000
 #define LOOKUP_NAME_ISOLATED             0x00000001  /* Look up unqualified names */
 #define LOOKUP_NAME_REMOTE               0x00000002  /* Ask others */
-#define LOOKUP_NAME_GROUP                0x00000004  /* (unused) This is a NASTY hack for
+#define LOOKUP_NAME_GROUP                0x00000004  /* This is a NASTY hack for
 							valid users = @foo where foo also
 							exists in as user. */
 #define LOOKUP_NAME_NO_NSS		 0x00000008  /* no NSS calls to avoid


-- 
Samba Shared Repository



More information about the samba-cvs mailing list