summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/libsmb/async_smb.c4
-rw-r--r--source3/rpc_client/rpc_transport_np.c6
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 "