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 <v...@samba.org> Date: Mon Oct 18 09:48:30 2010 +0200 s3: Make "unpack_pjob" static Autobuild-User: Volker Lendecke <vlen...@samba.org> Autobuild-Date: Wed Oct 20 16:51:04 UTC 2010 on sn-devel-104 commit 1d5cb5125c9ed911e9560a3cd99bc428306539c5 Author: Volker Lendecke <v...@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 <v...@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 <v...@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 <v...@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