summaryrefslogtreecommitdiffstats
path: root/src/channels.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/channels.c')
-rw-r--r--src/channels.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/channels.c b/src/channels.c
index b9f5f21..0e63ef2 100644
--- a/src/channels.c
+++ b/src/channels.c
@@ -3046,10 +3046,14 @@ int ssh_channel_select(ssh_channel *readchans, ssh_channel *writechans,
break;
}
/* Add all channels' sessions right into an event object */
- if (!event){
+ if (event == NULL) {
event = ssh_event_new();
- if(!event){
- return SSH_ERROR;
+ if (event == NULL) {
+ SAFE_FREE(rchans);
+ SAFE_FREE(wchans);
+ SAFE_FREE(echans);
+
+ return SSH_ERROR;
}
for (i = 0; readchans[i] != NULL; i++) {
ssh_poll_get_default_ctx(readchans[i]->session);