diff options
author | Bo Yang <boyang@novell.com> | 2009-04-29 09:50:41 +0800 |
---|---|---|
committer | Bo Yang <boyang@novell.com> | 2009-04-29 09:50:41 +0800 |
commit | f8cc0e88fbbb082ead023e0cb437b1e12cf35459 (patch) | |
tree | 8641a1f8679ceecd03db75bff4406ede1a28ff40 | |
parent | 077bcc11257697b243916fbb02cd72b3a122b9ba (diff) | |
download | samba-f8cc0e88fbbb082ead023e0cb437b1e12cf35459.tar.gz samba-f8cc0e88fbbb082ead023e0cb437b1e12cf35459.tar.bz2 samba-f8cc0e88fbbb082ead023e0cb437b1e12cf35459.zip |
s3: fix crash in winbindd
-rw-r--r-- | source3/libsmb/async_smb.c | 4 | ||||
-rw-r--r-- | source3/rpc_client/rpc_transport_np.c | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/source3/libsmb/async_smb.c b/source3/libsmb/async_smb.c index 6faf96c207..17040b8c9f 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 40d68dd2ea..dceacf6815 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 " |