1
0
mirror of https://git.libssh.org/projects/libssh.git synced 2025-08-08 19:02:06 +03:00

poll: Correctly free ssh_event_fd_wrapper.

This is allocated by ssh_event_add_fd.
This commit is contained in:
Andreas Schneider
2013-12-22 22:08:45 +01:00
parent 6eea08a9ef
commit 2068973ff3

View File

@@ -852,12 +852,18 @@ int ssh_event_remove_fd(ssh_event event, socket_t fd) {
for (i = 0; i < used; i++) {
if(fd == event->ctx->pollfds[i].fd) {
ssh_poll_handle p = event->ctx->pollptrs[i];
if (p->cb == ssh_event_fd_wrapper_callback) {
struct ssh_event_fd_wrapper *pw = p->cb_data;
SAFE_FREE(pw);
}
ssh_poll_ctx_remove(event->ctx, p);
free(pw);
/*
* The free function calls ssh_poll_ctx_remove() and decrements
* event->ctx->polls_used.
*/
ssh_poll_free(p);
rc = SSH_OK;
/* restart the loop */
used = event->ctx->polls_used;
i = 0;