mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
Prevent sending double-EOF in raw backend.
You can't call sk_write_eof() twice on the same socket, because the
second one will fail an assertion. Instead, you're supposed to know
you've already sent EOF, and not try to send it again.
The call to sk_write_eof() in raw_special (triggered by pressing ^D in
GUI PuTTY, for example) sets the flag raw->sent_socket_eof in an
attempt to prevent this. But it doesn't _check_ that flag, so a second
press of ^D can reach that assertion failure.
(cherry picked from commit 9f2e1e6e03
)
This commit is contained in:
parent
1405659dee
commit
07911c8735
@ -285,6 +285,7 @@ static void raw_special(Backend *be, SessionSpecialCode code, int arg)
|
||||
{
|
||||
Raw *raw = container_of(be, Raw, backend);
|
||||
if (code == SS_EOF && raw->s) {
|
||||
if (!raw->sent_socket_eof)
|
||||
sk_write_eof(raw->s);
|
||||
raw->sent_socket_eof= true;
|
||||
raw_check_close(raw);
|
||||
|
Loading…
Reference in New Issue
Block a user