The branch, master has been updated via 5712e51 s3: Remove a SMB_ASSERT via 4a28c6c s3: Fix bug 8904 -- wbinfo --lookup-sids "" crashes winbind from 0dc3f42 Add an audit file VFS routine so we can handle auditing with SACLs.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 5712e5199ec0231c241f0d0ca02f477d05892bb7 Author: Volker Lendecke <v...@samba.org> Date: Sat Apr 28 19:55:31 2012 +0200 s3: Remove a SMB_ASSERT Autobuild-User: Volker Lendecke <v...@samba.org> Autobuild-Date: Sat Apr 28 23:38:45 CEST 2012 on sn-devel-104 commit 4a28c6ca7cd97535596dd93741689ff17bb1c395 Author: Volker Lendecke <v...@samba.org> Date: Sat Apr 28 19:51:46 2012 +0200 s3: Fix bug 8904 -- wbinfo --lookup-sids "" crashes winbind Much of the code further down and up the call chain expects the structures wb_lookupsids returns to be allocated. Do that despite we have nothing to look up. ----------------------------------------------------------------------- Summary of changes: source3/winbindd/wb_lookupsids.c | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/winbindd/wb_lookupsids.c b/source3/winbindd/wb_lookupsids.c index e896860..b050bd0 100644 --- a/source3/winbindd/wb_lookupsids.c +++ b/source3/winbindd/wb_lookupsids.c @@ -123,11 +123,6 @@ struct tevent_req *wb_lookupsids_send(TALLOC_CTX *mem_ctx, state->sids = sids; state->num_sids = num_sids; - if (num_sids == 0) { - tevent_req_done(req); - return tevent_req_post(req, ev); - } - state->single_sids = talloc_array(state, uint32_t, num_sids); if (tevent_req_nomem(state->single_sids, req)) { return tevent_req_post(req, ev); @@ -153,6 +148,11 @@ struct tevent_req *wb_lookupsids_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } + if (num_sids == 0) { + tevent_req_done(req); + return tevent_req_post(req, ev); + } + for (i=0; i<num_sids; i++) { struct wb_lookupsids_domain *d; @@ -645,7 +645,11 @@ NTSTATUS wb_lookupsids_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx, * if not we have a bug in the code! * */ - SMB_ASSERT(state->res_names->count == state->num_sids); + if (state->res_names->count != state->num_sids) { + DEBUG(0, ("res_names->count = %d, expected %d\n", + state->res_names->count, state->num_sids)); + return NT_STATUS_INTERNAL_ERROR; + } /* * Not strictly needed, but it might make debugging in the callers -- Samba Shared Repository