[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Wed Oct 20 10:52:01 MDT 2010


The branch, master has been updated
       via  7a194c6 s3: Make "unpack_pjob" static
       via  1d5cb51 s3: Use any_nt_status_not_ok in winbind
       via  347ca8f s3: Add any_nt_status_not_ok
       via  62bea12 s3: Don't use talloc_autofree_context in map_file
       via  97a7aec uid_wrapper: The gid wrapper does not require a destructor
      from  e1cfca1 Make getpwnam_alloc() static to lib/username.c, and ensure all username lookups go through Get_Pwnam_alloc(), which is the correct wrapper function. We were using it *some* of the time anyway, so this just makes us properly consistent.

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


- Log -----------------------------------------------------------------
commit 7a194c6e5ea75db67502005e5d40d1ddf3708895
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Oct 18 09:48:30 2010 +0200

    s3: Make "unpack_pjob" static
    
    Autobuild-User: Volker Lendecke <vlendec at samba.org>
    Autobuild-Date: Wed Oct 20 16:51:04 UTC 2010 on sn-devel-104

commit 1d5cb5125c9ed911e9560a3cd99bc428306539c5
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Oct 18 10:10:43 2010 +0200

    s3: Use any_nt_status_not_ok in winbind

commit 347ca8f757d6a0b61bb22be21ffffec95986ad94
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Oct 18 10:09:57 2010 +0200

    s3: Add any_nt_status_not_ok
    
    This helps avoid quite a bit of repetitive code when looking at dcerpc_xx_recv
    results.

commit 62bea12c5dbb0e6ec6d74a3d2f8988f183572782
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Oct 9 10:12:06 2010 +0200

    s3: Don't use talloc_autofree_context in map_file

commit 97a7aec44aafde75208aaad24b42de1c93cdb97b
Author: Volker Lendecke <vl at samba.org>
Date:   Sat Oct 9 09:44:43 2010 +0200

    uid_wrapper: The gid wrapper does not require a destructor
    
    Don't use talloc_autofree_context

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

Summary of changes:
 lib/uid_wrapper/uid_wrapper.c                   |    4 ++--
 lib/util/util_file.c                            |    2 +-
 source3/include/printing.h                      |    1 -
 source3/include/proto.h                         |    1 +
 source3/lib/util.c                              |   13 +++++++++++++
 source3/printing/printing.c                     |    2 +-
 source3/winbindd/wb_dsgetdcname.c               |    6 +-----
 source3/winbindd/wb_gid2sid.c                   |    6 +-----
 source3/winbindd/wb_group_members.c             |    6 +-----
 source3/winbindd/wb_lookupname.c                |    6 +-----
 source3/winbindd/wb_lookupuseraliases.c         |    6 +-----
 source3/winbindd/wb_lookupusergroups.c          |    6 +-----
 source3/winbindd/wb_query_user_list.c           |    6 +-----
 source3/winbindd/wb_queryuser.c                 |    6 +-----
 source3/winbindd/wb_seqnum.c                    |    6 +-----
 source3/winbindd/wb_sid2gid.c                   |    6 +-----
 source3/winbindd/wb_sid2uid.c                   |    6 +-----
 source3/winbindd/wb_uid2sid.c                   |    6 +-----
 source3/winbindd/winbindd_allocate_gid.c        |    6 +-----
 source3/winbindd/winbindd_allocate_uid.c        |    6 +-----
 source3/winbindd/winbindd_change_machine_acct.c |    6 +-----
 source3/winbindd/winbindd_check_machine_acct.c  |    6 +-----
 source3/winbindd/winbindd_dsgetdcname.c         |    6 +-----
 source3/winbindd/winbindd_lookuprids.c          |    6 +-----
 source3/winbindd/winbindd_ping_dc.c             |    6 +-----
 25 files changed, 37 insertions(+), 100 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/uid_wrapper/uid_wrapper.c b/lib/uid_wrapper/uid_wrapper.c
index 93ebb7c..c676797 100644
--- a/lib/uid_wrapper/uid_wrapper.c
+++ b/lib/uid_wrapper/uid_wrapper.c
@@ -52,7 +52,7 @@ static void uwrap_init(void)
 		uwrap.enabled = true;
 		/* put us in one group */
 		uwrap.ngroups = 1;
-		uwrap.groups = talloc_array(talloc_autofree_context(), gid_t, 1);
+		uwrap.groups = talloc_array(NULL, gid_t, 1);
 		uwrap.groups[0] = 0;
 	}
 }
@@ -116,7 +116,7 @@ _PUBLIC_ int uwrap_setgroups(size_t size, const gid_t *list)
 	uwrap.groups = NULL;
 
 	if (size != 0) {
-		uwrap.groups = talloc_array(talloc_autofree_context(), gid_t, size);
+		uwrap.groups = talloc_array(NULL, gid_t, size);
 		if (uwrap.groups == NULL) {
 			errno = ENOMEM;
 			return -1;
diff --git a/lib/util/util_file.c b/lib/util/util_file.c
index aa0b2d5..7c00dd8 100644
--- a/lib/util/util_file.c
+++ b/lib/util/util_file.c
@@ -235,7 +235,7 @@ _PUBLIC_ void *map_file(const char *fname, size_t size)
 	}
 #endif
 	if (!p) {
-		p = file_load(fname, &s2, 0, talloc_autofree_context());
+		p = file_load(fname, &s2, 0, NULL);
 		if (!p) return NULL;
 		if (s2 != size) {
 			DEBUG(1,("incorrect size for %s - got %d expected %d\n",
diff --git a/source3/include/printing.h b/source3/include/printing.h
index 36726b3..9f0fcde 100644
--- a/source3/include/printing.h
+++ b/source3/include/printing.h
@@ -115,7 +115,6 @@ void print_spool_terminate(struct connection_struct *conn,
 
 /* The following definitions come from printing/printing.c  */
 
-int unpack_pjob( uint8 *buf, int buflen, struct printjob *pjob );
 uint32 sysjob_to_jobid(int unix_jobid);
 bool print_notify_register_pid(int snum);
 bool print_notify_deregister_pid(int snum);
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 3e4655e..6ce27b8 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1204,6 +1204,7 @@ const char *strip_hostname(const char *s);
 bool tevent_req_poll_ntstatus(struct tevent_req *req,
 			      struct tevent_context *ev,
 			      NTSTATUS *status);
+bool any_nt_status_not_ok(NTSTATUS err1, NTSTATUS err2, NTSTATUS *result);
 
 /* The following definitions come from lib/util_file.c  */
 
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 36b2e42..4baeda4 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -2965,3 +2965,16 @@ bool tevent_req_poll_ntstatus(struct tevent_req *req,
 	}
 	return ret;
 }
+
+bool any_nt_status_not_ok(NTSTATUS err1, NTSTATUS err2, NTSTATUS *result)
+{
+	if (!NT_STATUS_IS_OK(err1)) {
+		*result = err1;
+		return true;
+	}
+	if (!NT_STATUS_IS_OK(err2)) {
+		*result = err2;
+		return true;
+	}
+	return false;
+}
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 1568aca..1c2817d 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -365,7 +365,7 @@ done:
  unpack a pjob from a tdb buffer
 ***********************************************************************/
 
-int unpack_pjob( uint8 *buf, int buflen, struct printjob *pjob )
+static int unpack_pjob( uint8 *buf, int buflen, struct printjob *pjob )
 {
 	int	len = 0;
 	int	used;
diff --git a/source3/winbindd/wb_dsgetdcname.c b/source3/winbindd/wb_dsgetdcname.c
index 71aecfe..8c78599 100644
--- a/source3/winbindd/wb_dsgetdcname.c
+++ b/source3/winbindd/wb_dsgetdcname.c
@@ -93,14 +93,10 @@ static void wb_dsgetdcname_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_DsGetDcName_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_gid2sid.c b/source3/winbindd/wb_gid2sid.c
index 6bde2b5..fd2fd0e 100644
--- a/source3/winbindd/wb_gid2sid.c
+++ b/source3/winbindd/wb_gid2sid.c
@@ -97,14 +97,10 @@ static void wb_gid2sid_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_Gid2Sid_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_group_members.c b/source3/winbindd/wb_group_members.c
index 1fb7af3..5be04a9 100644
--- a/source3/winbindd/wb_group_members.c
+++ b/source3/winbindd/wb_group_members.c
@@ -92,14 +92,10 @@ static void wb_lookupgroupmem_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_LookupGroupMembers_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_lookupname.c b/source3/winbindd/wb_lookupname.c
index c28b51a..783ee4c 100644
--- a/source3/winbindd/wb_lookupname.c
+++ b/source3/winbindd/wb_lookupname.c
@@ -129,14 +129,10 @@ static void wb_lookupname_root_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_LookupName_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_lookupuseraliases.c b/source3/winbindd/wb_lookupuseraliases.c
index d8f8023..0459fe9 100644
--- a/source3/winbindd/wb_lookupuseraliases.c
+++ b/source3/winbindd/wb_lookupuseraliases.c
@@ -65,14 +65,10 @@ static void wb_lookupuseraliases_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_LookupUserAliases_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_lookupusergroups.c b/source3/winbindd/wb_lookupusergroups.c
index e1478aa..fb675e3 100644
--- a/source3/winbindd/wb_lookupusergroups.c
+++ b/source3/winbindd/wb_lookupusergroups.c
@@ -64,14 +64,10 @@ static void wb_lookupusergroups_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_LookupUserGroups_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_query_user_list.c b/source3/winbindd/wb_query_user_list.c
index 5480763..fafbb76 100644
--- a/source3/winbindd/wb_query_user_list.c
+++ b/source3/winbindd/wb_query_user_list.c
@@ -60,14 +60,10 @@ static void wb_query_user_list_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_QueryUserList_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 
 	DEBUG(10, ("dcerpc_wbint_QueryUserList returned %d users\n",
 		   state->users.num_userinfos));
diff --git a/source3/winbindd/wb_queryuser.c b/source3/winbindd/wb_queryuser.c
index f14fbcb..9685119 100644
--- a/source3/winbindd/wb_queryuser.c
+++ b/source3/winbindd/wb_queryuser.c
@@ -73,14 +73,10 @@ static void wb_queryuser_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_QueryUser_recv(subreq, state->info, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_seqnum.c b/source3/winbindd/wb_seqnum.c
index 3084564..15b1622 100644
--- a/source3/winbindd/wb_seqnum.c
+++ b/source3/winbindd/wb_seqnum.c
@@ -57,14 +57,10 @@ static void wb_seqnum_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_QuerySequenceNumber_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/wb_sid2gid.c b/source3/winbindd/wb_sid2gid.c
index 76fe326..9adff51 100644
--- a/source3/winbindd/wb_sid2gid.c
+++ b/source3/winbindd/wb_sid2gid.c
@@ -145,14 +145,10 @@ static void wb_sid2gid_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_Sid2Gid_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 
 	state->gid = state->gid64;
 	tevent_req_done(req);
diff --git a/source3/winbindd/wb_sid2uid.c b/source3/winbindd/wb_sid2uid.c
index 21bf61b..5395d53 100644
--- a/source3/winbindd/wb_sid2uid.c
+++ b/source3/winbindd/wb_sid2uid.c
@@ -143,14 +143,10 @@ static void wb_sid2uid_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_Sid2Uid_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 
 	state->uid = state->uid64;
 	tevent_req_done(req);
diff --git a/source3/winbindd/wb_uid2sid.c b/source3/winbindd/wb_uid2sid.c
index 46b896a..5beceaf 100644
--- a/source3/winbindd/wb_uid2sid.c
+++ b/source3/winbindd/wb_uid2sid.c
@@ -97,14 +97,10 @@ static void wb_uid2sid_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_Uid2Sid_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_allocate_gid.c b/source3/winbindd/winbindd_allocate_gid.c
index d926454..c9c1972 100644
--- a/source3/winbindd/winbindd_allocate_gid.c
+++ b/source3/winbindd/winbindd_allocate_gid.c
@@ -65,14 +65,10 @@ static void winbindd_allocate_gid_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_AllocateGid_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_allocate_uid.c b/source3/winbindd/winbindd_allocate_uid.c
index b949b4a..5eecce3 100644
--- a/source3/winbindd/winbindd_allocate_uid.c
+++ b/source3/winbindd/winbindd_allocate_uid.c
@@ -65,14 +65,10 @@ static void winbindd_allocate_uid_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_AllocateUid_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_change_machine_acct.c b/source3/winbindd/winbindd_change_machine_acct.c
index 8b31bb1..c98d713 100644
--- a/source3/winbindd/winbindd_change_machine_acct.c
+++ b/source3/winbindd/winbindd_change_machine_acct.c
@@ -75,14 +75,10 @@ static void winbindd_change_machine_acct_done(struct tevent_req *subreq)
 	NTSTATUS status, result;
 
 	status = dcerpc_wbint_ChangeMachineAccount_recv(subreq, state, &result);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_check_machine_acct.c b/source3/winbindd/winbindd_check_machine_acct.c
index 65a9750..5f9cefa 100644
--- a/source3/winbindd/winbindd_check_machine_acct.c
+++ b/source3/winbindd/winbindd_check_machine_acct.c
@@ -79,14 +79,10 @@ static void winbindd_check_machine_acct_done(struct tevent_req *subreq)
 	NTSTATUS status, result;
 
 	status = dcerpc_wbint_CheckMachineAccount_recv(subreq, state, &result);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_dsgetdcname.c b/source3/winbindd/winbindd_dsgetdcname.c
index f01d354..7e46c96 100644
--- a/source3/winbindd/winbindd_dsgetdcname.c
+++ b/source3/winbindd/winbindd_dsgetdcname.c
@@ -89,14 +89,10 @@ static void winbindd_dsgetdcname_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_DsGetDcName_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_lookuprids.c b/source3/winbindd/winbindd_lookuprids.c
index 20ba79e..6e3d5c5 100644
--- a/source3/winbindd/winbindd_lookuprids.c
+++ b/source3/winbindd/winbindd_lookuprids.c
@@ -102,14 +102,10 @@ static void winbindd_lookuprids_done(struct tevent_req *subreq)
 
 	status = dcerpc_wbint_LookupRids_recv(subreq, state, &result);
 	TALLOC_FREE(subreq);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 
diff --git a/source3/winbindd/winbindd_ping_dc.c b/source3/winbindd/winbindd_ping_dc.c
index e69e593..db50f6d 100644
--- a/source3/winbindd/winbindd_ping_dc.c
+++ b/source3/winbindd/winbindd_ping_dc.c
@@ -78,14 +78,10 @@ static void winbindd_ping_dc_done(struct tevent_req *subreq)
 	NTSTATUS status, result;
 
 	status = dcerpc_wbint_PingDc_recv(subreq, state, &result);
-	if (!NT_STATUS_IS_OK(status)) {
+	if (any_nt_status_not_ok(status, result, &status)) {
 		tevent_req_nterror(req, status);
 		return;
 	}
-	if (!NT_STATUS_IS_OK(result)) {
-		tevent_req_nterror(req, result);
-		return;
-	}
 	tevent_req_done(req);
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list