aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-12-12 18:30:26 +0100
committerAndreas Schneider <asn@cryptomilk.org>2018-12-13 21:30:35 +0100
commitfded1fb9eb672f9946fafbb43bfe1e8121e812d9 (patch)
tree9729969c88a3bfe74d087a4cb0e1b4530377e729
parenta6e055c42b34ec50f55606312b09ec2e14990416 (diff)
downloadlibssh-fded1fb9eb672f9946fafbb43bfe1e8121e812d9.tar.gz
libssh-fded1fb9eb672f9946fafbb43bfe1e8121e812d9.tar.xz
libssh-fded1fb9eb672f9946fafbb43bfe1e8121e812d9.zip
channels: Don't call ssh_channel_close() twice
Signed-off-by: Andreas Schneider <asn@cryptomilk.org> (cherry picked from commit 6cd8d4a24aa067d16611eb64bf306b7853748f34)
-rw-r--r--src/channels.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/channels.c b/src/channels.c
index 0c0bd44c..b94016f1 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -1160,6 +1160,11 @@ int ssh_channel_close(ssh_channel channel)
return SSH_ERROR;
}
+ /* If the channel close has already been sent we're done here. */
+ if (channel->flags & SSH_CHANNEL_FLAG_CLOSED_LOCAL) {
+ return SSH_OK;
+ }
+
session = channel->session;
if (channel->local_eof == 0) {