The branch, v3-6-test has been updated
       via  a13560b s3: sid->domain_sid in winbindd_samr sam_rids_to_names
       via  0ea36b1 Quite some callers of sid_split_rid do not care about the 
rid (cherry picked from commit 16b007c2232cc8432fa9e93409e16367d72b149e)
       via  01c3c04 s3: Fix paranoia check in sam_rids_to_names (cherry picked 
from commit 8d0e2415309ee15fbf509d44caf3e1df5b900620)
      from  902fb32 frstrans.idl: add idl for RawGetFileDataAsync() and 
RdcGetFileDataAsync()

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit a13560ba9d373b89c7050a096be058f13ff2b33b
Author: Volker Lendecke <[email protected]>
Date:   Thu Mar 10 16:23:20 2011 +0100

    s3: sid->domain_sid in winbindd_samr sam_rids_to_names
    
    Autobuild-User: Volker Lendecke <[email protected]>
    Autobuild-Date: Thu Mar 10 19:33:47 CET 2011 on sn-devel-104
    (cherry picked from commit 257f0491cbcc6d8a7d05520ccb3ffa7dd7c27273)

commit 0ea36b18c1c7503854e4b9576ffb4cc24ef1afb9
Author: Volker Lendecke <[email protected]>
Date:   Thu Mar 10 16:19:17 2011 +0100

    Quite some callers of sid_split_rid do not care about the rid
    (cherry picked from commit 16b007c2232cc8432fa9e93409e16367d72b149e)

commit 01c3c044ceae2da194792f6ec140b2af29240678
Author: Volker Lendecke <[email protected]>
Date:   Thu Mar 10 16:07:36 2011 +0100

    s3: Fix paranoia check in sam_rids_to_names
    (cherry picked from commit 8d0e2415309ee15fbf509d44caf3e1df5b900620)

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

Summary of changes:
 libcli/security/util_sid.c       |    4 +++-
 source3/auth/token_util.c        |    4 +---
 source3/lib/util_sid.c           |    3 +--
 source3/libads/ldap.c            |    3 +--
 source3/passdb/lookup_sid.c      |    3 +--
 source3/passdb/machine_sid.c     |    3 +--
 source3/passdb/util_builtin.c    |    5 ++---
 source3/passdb/util_unixsids.c   |    6 ++----
 source3/passdb/util_wellknown.c  |    5 ++---
 source3/winbindd/winbindd_samr.c |   18 ++++++++----------
 10 files changed, 22 insertions(+), 32 deletions(-)


Changeset truncated at 500 lines:

diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c
index 535e81c..cf1f7f3 100644
--- a/libcli/security/util_sid.c
+++ b/libcli/security/util_sid.c
@@ -167,7 +167,9 @@ bool sid_split_rid(struct dom_sid *sid, uint32_t *rid)
 {
        if (sid->num_auths > 0) {
                sid->num_auths--;
-               *rid = sid->sub_auths[sid->num_auths];
+               if (rid != NULL) {
+                       *rid = sid->sub_auths[sid->num_auths];
+               }
                return true;
        }
        return false;
diff --git a/source3/auth/token_util.c b/source3/auth/token_util.c
index 4a702ef..3694188 100644
--- a/source3/auth/token_util.c
+++ b/source3/auth/token_util.c
@@ -849,8 +849,6 @@ NTSTATUS create_token_from_username(TALLOC_CTX *mem_ctx, 
const char *username,
                 * correct info. AD might prohibit winbind looking up that
                 * information. */
 
-               uint32 dummy;
-
                /* We must always assign the *uid. */
                if (!sid_to_uid(&user_sid, uid)) {
                        DEBUG(1, ("winbindd case, sid_to_uid for %s (%s) 
failed\n",
@@ -868,7 +866,7 @@ NTSTATUS create_token_from_username(TALLOC_CTX *mem_ctx, 
const char *username,
                }
 
                sid_copy(&group_sids[0], &user_sid);
-               sid_split_rid(&group_sids[0], &dummy);
+               sid_split_rid(&group_sids[0], NULL);
                sid_append_rid(&group_sids[0], DOMAIN_RID_USERS);
 
                if (!sid_to_gid(&group_sids[0], gid)) {
diff --git a/source3/lib/util_sid.c b/source3/lib/util_sid.c
index 0a026a1..f6210c1 100644
--- a/source3/lib/util_sid.c
+++ b/source3/lib/util_sid.c
@@ -95,10 +95,9 @@ bool sid_linearize(char *outbuf, size_t len, const struct 
dom_sid *sid)
 bool non_mappable_sid(struct dom_sid *sid)
 {
        struct dom_sid dom;
-       uint32 rid;
 
        sid_copy(&dom, sid);
-       sid_split_rid(&dom, &rid);
+       sid_split_rid(&dom, NULL);
 
        if (dom_sid_equal(&dom, &global_sid_Builtin))
                return True;
diff --git a/source3/libads/ldap.c b/source3/libads/ldap.c
index c1af5b5..3ce7a7e 100644
--- a/source3/libads/ldap.c
+++ b/source3/libads/ldap.c
@@ -3644,11 +3644,10 @@ ADS_STATUS ads_leave_realm(ADS_STRUCT *ads, const char 
*hostname)
                 * domsid */
 
                struct dom_sid domsid;
-               uint32 dummy_rid;
 
                sid_copy(&domsid, &tmp_user_sid);
 
-               if (!sid_split_rid(&domsid, &dummy_rid)) {
+               if (!sid_split_rid(&domsid, NULL)) {
                        ads_msgfree(ads, res);
                        return ADS_ERROR_LDAP(LDAP_NO_MEMORY);
                }
diff --git a/source3/passdb/lookup_sid.c b/source3/passdb/lookup_sid.c
index cd5cd7d..c0abea0 100644
--- a/source3/passdb/lookup_sid.c
+++ b/source3/passdb/lookup_sid.c
@@ -259,7 +259,6 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
 
        if (IS_DC && winbind_lookup_name("", name, &sid, &type)) {
                struct dom_sid dom_sid;
-               uint32 tmp_rid;
                enum lsa_SidType domain_type;
                
                if (type == SID_NAME_DOMAIN) {
@@ -273,7 +272,7 @@ bool lookup_name(TALLOC_CTX *mem_ctx,
                 * domain it figured out itself. Maybe fix that later... */
 
                sid_copy(&dom_sid, &sid);
-               sid_split_rid(&dom_sid, &tmp_rid);
+               sid_split_rid(&dom_sid, NULL);
 
                if (!winbind_lookup_sid(tmp_ctx, &dom_sid, &domain, NULL,
                                        &domain_type) ||
diff --git a/source3/passdb/machine_sid.c b/source3/passdb/machine_sid.c
index 4de51b8..977cd20 100644
--- a/source3/passdb/machine_sid.c
+++ b/source3/passdb/machine_sid.c
@@ -243,9 +243,8 @@ bool sid_check_is_domain(const struct dom_sid *sid)
 bool sid_check_is_in_our_domain(const struct dom_sid *sid)
 {
        struct dom_sid dom_sid;
-       uint32 rid;
 
        sid_copy(&dom_sid, sid);
-       sid_split_rid(&dom_sid, &rid);
+       sid_split_rid(&dom_sid, NULL);
        return sid_check_is_domain(&dom_sid);
 }
diff --git a/source3/passdb/util_builtin.c b/source3/passdb/util_builtin.c
index a2cbbc7..9cd6780 100644
--- a/source3/passdb/util_builtin.c
+++ b/source3/passdb/util_builtin.c
@@ -115,11 +115,10 @@ bool sid_check_is_builtin(const struct dom_sid *sid)
 bool sid_check_is_in_builtin(const struct dom_sid *sid)
 {
        struct dom_sid dom_sid;
-       uint32 rid;
 
        sid_copy(&dom_sid, sid);
-       sid_split_rid(&dom_sid, &rid);
-       
+       sid_split_rid(&dom_sid, NULL);
+
        return sid_check_is_builtin(&dom_sid);
 }
 
diff --git a/source3/passdb/util_unixsids.c b/source3/passdb/util_unixsids.c
index 1f830b3..00cab22 100644
--- a/source3/passdb/util_unixsids.c
+++ b/source3/passdb/util_unixsids.c
@@ -28,10 +28,9 @@ bool sid_check_is_unix_users(const struct dom_sid *sid)
 bool sid_check_is_in_unix_users(const struct dom_sid *sid)
 {
        struct dom_sid dom_sid;
-       uint32 rid;
 
        sid_copy(&dom_sid, sid);
-       sid_split_rid(&dom_sid, &rid);
+       sid_split_rid(&dom_sid, NULL);
 
        return sid_check_is_unix_users(&dom_sid);
 }
@@ -86,10 +85,9 @@ bool sid_check_is_unix_groups(const struct dom_sid *sid)
 bool sid_check_is_in_unix_groups(const struct dom_sid *sid)
 {
        struct dom_sid dom_sid;
-       uint32 rid;
 
        sid_copy(&dom_sid, sid);
-       sid_split_rid(&dom_sid, &rid);
+       sid_split_rid(&dom_sid, NULL);
 
        return sid_check_is_unix_groups(&dom_sid);
 }
diff --git a/source3/passdb/util_wellknown.c b/source3/passdb/util_wellknown.c
index 5ca26db..2d83ebe 100644
--- a/source3/passdb/util_wellknown.c
+++ b/source3/passdb/util_wellknown.c
@@ -89,11 +89,10 @@ bool sid_check_is_wellknown_domain(const struct dom_sid 
*sid, const char **name)
 bool sid_check_is_in_wellknown_domain(const struct dom_sid *sid)
 {
        struct dom_sid dom_sid;
-       uint32 rid;
 
        sid_copy(&dom_sid, sid);
-       sid_split_rid(&dom_sid, &rid);
-       
+       sid_split_rid(&dom_sid, NULL);
+
        return sid_check_is_wellknown_domain(&dom_sid, NULL);
 }
 
diff --git a/source3/winbindd/winbindd_samr.c b/source3/winbindd/winbindd_samr.c
index d33a309..887f5ac 100644
--- a/source3/winbindd/winbindd_samr.c
+++ b/source3/winbindd/winbindd_samr.c
@@ -751,7 +751,7 @@ done:
 
 static NTSTATUS sam_rids_to_names(struct winbindd_domain *domain,
                                  TALLOC_CTX *mem_ctx,
-                                 const struct dom_sid *sid,
+                                 const struct dom_sid *domain_sid,
                                  uint32 *rids,
                                  size_t num_rids,
                                  char **pdomain_name,
@@ -772,15 +772,13 @@ static NTSTATUS sam_rids_to_names(struct winbindd_domain 
*domain,
        ZERO_STRUCT(lsa_policy);
 
        /* Paranoia check */
-       if (!sid_check_is_in_builtin(sid) &&
-           !sid_check_is_in_our_domain(sid) &&
-           !sid_check_is_in_unix_users(sid) &&
-           !sid_check_is_unix_users(sid) &&
-           !sid_check_is_in_unix_groups(sid) &&
-           !sid_check_is_unix_groups(sid) &&
-           !sid_check_is_in_wellknown_domain(sid)) {
+       if (!sid_check_is_builtin(domain_sid) &&
+           !sid_check_is_domain(domain_sid) &&
+           !sid_check_is_unix_users(domain_sid) &&
+           !sid_check_is_unix_groups(domain_sid) &&
+           !sid_check_is_in_wellknown_domain(domain_sid)) {
                DEBUG(0, ("sam_rids_to_names: possible deadlock - trying to "
-                         "lookup SID %s\n", sid_string_dbg(sid)));
+                         "lookup SID %s\n", sid_string_dbg(domain_sid)));
                return NT_STATUS_NONE_MAPPED;
        }
 
@@ -800,7 +798,7 @@ static NTSTATUS sam_rids_to_names(struct winbindd_domain 
*domain,
                                   lsa_pipe,
                                   &lsa_policy,
                                   domain,
-                                  sid,
+                                  domain_sid,
                                   rids,
                                   num_rids,
                                   &domain_name,


-- 
Samba Shared Repository

Reply via email to