[poll] avoid infinite loop in ssh_poll_ctx_free()

(cherry picked from commit 8092541603)
This commit is contained in:
milo
2011-04-20 04:09:28 +02:00
parent bb784ec6be
commit a03bb2fbf7

View File

@@ -491,8 +491,13 @@ void ssh_poll_ctx_free(ssh_poll_ctx ctx) {
socket_t fd = ctx->pollfds[i].fd;
/* force poll object removal */
if (p->cb(p, fd, POLLERR, p->cb_data) < 0) {
used = ctx->polls_used;
if (p->cb && p->cb(p, fd, POLLERR, p->cb_data) < 0) {
if(ctx->polls_used < used) {
used = ctx->polls_used;
} else {
/* nothing to do */
i++;
}
} else {
i++;
}