[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [BUG] Recursion crash when calling ssh_channel_write()
[Thread Prev] | [Thread Next]
- Subject: Re: [BUG] Recursion crash when calling ssh_channel_write()
- From: g4-lisz@xxxxxxxxxxxx
- Reply-to: libssh@xxxxxxxxxx
- Date: Thu, 14 Feb 2019 01:40:25 +0100
- To: libssh@xxxxxxxxxx
On 14.02.19 01:22, Alberto Garcia wrote:
> Forgot to add the callstack so you understand the code path the
> execution takes when calling *ssh_channel_write*() .
> *my_fd_data_function* is the callback set with ssh_event_add_fd()
> [crash]
> [.. more...]
> VS-ssh-direct-tcp.exe!*my_fd_data_function*(unsigned int fd, int
> revents, void * userdata) Line 460C
> VS-ssh-direct-tcp.exe!ssh_event_fd_wrapper_callback(ssh_poll_handle_struct
> * p, unsigned int fd, int revents, void * userdata) Line 719C
> VS-ssh-direct-tcp.exe!ssh_poll_ctx_dopoll(ssh_poll_ctx_struct * ctx,
> int timeout) Line 628C
> VS-ssh-direct-tcp.exe!ssh_handle_packets(ssh_session_struct *
> session, int timeout) Line 630C
> VS-ssh-direct-tcp.exe!ssh_handle_packets_termination(ssh_session_struct
> * session, int timeout, int(*)(void *) fct, void * user) Line 692C
> VS-ssh-direct-tcp.exe!ssh_blocking_flush(ssh_session_struct *
> session, int timeout) Line 500C
> VS-ssh-direct-tcp.exe!ssh_channel_flush(ssh_channel_struct * channel)
> Line 1222C
> VS-ssh-direct-tcp.exe!channel_write_common(ssh_channel_struct *
> channel, const void * data, unsigned int len, int is_stderr) Line 1354C
> VS-ssh-direct-tcp.exe!ssh_channel_write(ssh_channel_struct * channel,
> const void * data, unsigned int len) Line 1403C
> VS-ssh-direct-tcp.exe!*my_fd_data_function*(unsigned int fd, int
> revents, void * userdata) Line 460C
> VS-ssh-direct-tcp.exe!ssh_event_fd_wrapper_callback(ssh_poll_handle_struct
> * p, unsigned int fd, int revents, void * userdata) Line 719C
> VS-ssh-direct-tcp.exe!ssh_poll_ctx_dopoll(ssh_poll_ctx_struct * ctx,
> int timeout) Line 628C
> VS-ssh-direct-tcp.exe!ssh_event_dopoll(ssh_event_struct * event, int
> timeout) Line 888C
> VS-ssh-direct-tcp.exe!per_conn_thread(void * args) Line 1068C
>
... and this doesn't happen on Linux, so my guess is that it's related
to ssh_poll_emu() i.e. bsd_poll... And then maybe revents are not set
properly.
In my_fd_data_function() we have:
if (!(revents & POLLIN)) {
return 0;
}
This should actually prevent from doing anything if it's called for
something else than reading.
Till
| [BUG] Recursion crash when calling ssh_channel_write() | Alberto Garcia <agarciaillera@xxxxxxxxx> |
| Re: [BUG] Recursion crash when calling ssh_channel_write() | Alberto Garcia <agarciaillera@xxxxxxxxx> |