diff --git a/src/poll.c b/src/poll.c index ed2924c6..48991e9c 100644 --- a/src/poll.c +++ b/src/poll.c @@ -495,7 +495,12 @@ void ssh_poll_ctx_free(ssh_poll_ctx ctx) { /* force poll object removal */ if (p->cb && p->cb(p, fd, POLLERR, p->cb_data) < 0) { - used = ctx->polls_used; + if(ctx->polls_used < used) { + used = ctx->polls_used; + } else { + /* nothing to do */ + i++; + } } else { i++; }