The branch, v4-0-test has been updated
       via  989e320 winbindd: Ensure we do not look at rid_array before 
checking if it was returned
      from  cd90613 printing: fix purge of all print jobs

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


- Log -----------------------------------------------------------------
commit 989e320e23085f862571492933179726e9c5af1d
Author: Andrew Bartlett <abart...@samba.org>
Date:   Fri Mar 28 16:30:28 2014 +1300

    winbindd: Ensure we do not look at rid_array before checking if it was 
returned
    
    We no longer return early if there are no members, we just return an empty 
array.
    
    Fixes bug #10627 - rid_array used before status checked - segmentation 
fault due to null pointer dereference
    
    https://bugzilla.samba.org/show_bug.cgi?id=10627
    
    Change-Id: I7b0949e0c0b9277426a8007514a8658615f6c709
    Signed-off-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: David Disseldorp <dd...@samba.org>
    
    Autobuild-User(v4-0-test): Karolin Seeger <ksee...@samba.org>
    Autobuild-Date(v4-0-test): Wed Jun 11 11:40:38 CEST 2014 on sn-devel-104

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

Summary of changes:
 source3/winbindd/winbindd_rpc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c
index 0986d82..148683f 100644
--- a/source3/winbindd/winbindd_rpc.c
+++ b/source3/winbindd/winbindd_rpc.c
@@ -580,8 +580,6 @@ NTSTATUS rpc_lookup_usergroups(TALLOC_CTX *mem_ctx,
                                              &user_policy,
                                              &rid_array,
                                              &result);
-       num_groups = rid_array->count;
-
        {
                NTSTATUS _result;
                dcerpc_samr_Close(b, mem_ctx, &user_policy, &_result);
@@ -590,10 +588,12 @@ NTSTATUS rpc_lookup_usergroups(TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
-       if (!NT_STATUS_IS_OK(result) || num_groups == 0) {
+       if (!NT_STATUS_IS_OK(result)) {
                return result;
        }
 
+       num_groups = rid_array->count;
+
        user_grpsids = talloc_array(mem_ctx, struct dom_sid, num_groups);
        if (user_grpsids == NULL) {
                status = NT_STATUS_NO_MEMORY;


-- 
Samba Shared Repository

Reply via email to