From f8cc0e88fbbb082ead023e0cb437b1e12cf35459 Mon Sep 17 00:00:00 2001 From: Bo Yang Date: Wed, 29 Apr 2009 09:50:41 +0800 Subject: [PATCH] s3: fix crash in winbindd --- source3/libsmb/async_smb.c | 4 ++++ source3/rpc_client/rpc_transport_np.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 6faf96c207f..17040b8c9f4 100644 --- a/source3/libsmb/async_smb.c +++ b/source3/libsmb/async_smb.c @@ -604,6 +604,10 @@ bool cli_smb_req_send(struct tevent_req *req) struct cli_smb_state *state = tevent_req_data( req, struct cli_smb_state); + if (state->cli->fd == -1) { + return false; + } + return cli_smb_req_iov_send(req, state, state->iov, state->iov_count); } diff --git a/source3/rpc_client/rpc_transport_np.c b/source3/rpc_client/rpc_transport_np.c index 40d68dd2eab..dceacf68157 100644 --- a/source3/rpc_client/rpc_transport_np.c +++ b/source3/rpc_client/rpc_transport_np.c @@ -31,6 +31,12 @@ struct rpc_transport_np_state { static int rpc_transport_np_state_destructor(struct rpc_transport_np_state *s) { bool ret; + + if (s->cli->fd == -1) { + DEBUG(10, ("socket was closed, no need to send close request.\n")); + return 0; + } + ret = cli_close(s->cli, s->fnum); if (!ret) { DEBUG(1, ("rpc_transport_np_state_destructor: cli_close " -- 2.34.1