From 976d11a5e1fe2539260f60204e3e570af76368e8 Mon Sep 17 00:00:00 2001 From: Michal Vasko Date: Wed, 14 Aug 2024 09:52:28 +0200 Subject: [PATCH] io UPDATE infinite poll timeout fix in libssh Fixes #496 --- src/io.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/io.c b/src/io.c index daae0232..e1d6087c 100644 --- a/src/io.c +++ b/src/io.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -398,6 +399,11 @@ nc_read_poll(struct nc_session *session, int io_timeout) switch (session->ti_type) { #ifdef NC_ENABLED_SSH_TLS case NC_TI_SSH: + if (io_timeout == -1) { + /* BUG libssh 0.11.0 replaces timeout -1 with 0 for non-blocking sessions */ + io_timeout = INT_MAX; + } + /* EINTR is handled, it resumes waiting */ ret = ssh_channel_poll_timeout(session->ti.libssh.channel, io_timeout, 0); if (ret == SSH_ERROR) {