[SCM] Samba Shared Repository - branch v3-5-test updated

Karolin Seeger kseeger at samba.org
Fri Nov 25 12:22:57 MST 2011


The branch, v3-5-test has been updated
       via  6849353 s3-winbind: Don't fail on users without a uid.
      from  4efc4fc s3/packaging: Fix rpm build issues on RHEL4.

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


- Log -----------------------------------------------------------------
commit 6849353175d6623c3508f0dd955c7aace6cfc677
Author: Andreas Schneider <asn at samba.org>
Date:   Mon Nov 14 10:01:31 2011 +0100

    s3-winbind: Don't fail on users without a uid.
    
    This fixes bug #8608.
    
    If you join samba with idmap_ad backend to an AD. When you try to
    enumerate users with 'getent passwd' and the user doesn't have a uid
    set, then getent is aborted cause of NT_STATUS_NONE_MAPPED. If we can't
    map a user we should not stop but continue enumerating users.
    
    This normally happens with the default user 'krbtgt' with idmap_ad but
    could also happen with other backends.
    
    Autobuild-User: Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date: Tue Nov 15 16:52:04 CET 2011 on sn-devel-104
    
    (backported from commit 10b285ccc29b106f164a6c18116e237634867717)
    
    Signed-off-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 source3/winbindd/wb_next_pwent.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/winbindd/wb_next_pwent.c b/source3/winbindd/wb_next_pwent.c
index fbaaa48..e5b5e29 100644
--- a/source3/winbindd/wb_next_pwent.c
+++ b/source3/winbindd/wb_next_pwent.c
@@ -147,7 +147,24 @@ static void wb_next_pwent_fill_done(struct tevent_req *subreq)
 
 	status = wb_fill_pwent_recv(subreq);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	/*
+	 * When you try to enumerate users with 'getent passwd' and the user
+	 * doesn't have a uid set we should just move on.
+	 */
+	if (NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) {
+		state->gstate->next_user += 1;
+
+		subreq = wb_fill_pwent_send(state,
+					    state->ev,
+					    &state->gstate->users[state->gstate->next_user],
+					    state->pw);
+		if (tevent_req_nomem(subreq, req)) {
+			return;
+		}
+		tevent_req_set_callback(subreq, wb_next_pwent_fill_done, req);
+
+		return;
+	} else if (!NT_STATUS_IS_OK(status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list