-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ssh: fix OpenSSH 9.4 regression with multiplexed sessions
Upstream commit message: upstream: fix regression in OpenSSH 9.4 (mux.c r1.99) that caused multiplexed sessions to ignore SIGINT under some circumstances. Reported by / feedback naddy@, ok dtucker@ OpenBSD-Commit-ID: 4d5c6c894664f50149153fd4764f21f43e7d7e5a Fixes: 535af61 ("ssh: Update to OpenSSH 9.4p1") Obtained from: OpenSSH 803e22eabd3b Sponsored by: The FreeBSD Foundation
- Loading branch information
1 parent
3b754ce
commit f7d00f1
Showing
4 changed files
with
39 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
/* $OpenBSD: misc.h,v 1.103 2023/07/19 14:02:27 djm Exp $ */ | ||
/* $OpenBSD: misc.h,v 1.104 2023/08/18 01:37:41 djm Exp $ */ | ||
|
||
/* | ||
* Author: Tatu Ylonen <[email protected]> | ||
|
@@ -19,6 +19,7 @@ | |
#include <sys/types.h> | ||
#include <sys/socket.h> | ||
#include <stdio.h> | ||
#include <signal.h> | ||
|
||
/* Data structure for representing a forwarding request. */ | ||
struct Forward { | ||
|
@@ -57,7 +58,7 @@ char *get_rdomain(int); | |
int set_rdomain(int, const char *); | ||
int get_sock_af(int); | ||
void set_sock_tos(int, int); | ||
int waitrfd(int, int *); | ||
int waitrfd(int, int *, volatile sig_atomic_t *); | ||
int timeout_connect(int, const struct sockaddr *, socklen_t, int *); | ||
int a2port(const char *); | ||
int a2tun(const char *, int *); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
/* $OpenBSD: mux.c,v 1.99 2023/08/04 06:32:40 dtucker Exp $ */ | ||
/* $OpenBSD: mux.c,v 1.100 2023/08/18 01:37:41 djm Exp $ */ | ||
/* | ||
* Copyright (c) 2002-2008 Damien Miller <[email protected]> | ||
* | ||
|
@@ -1480,7 +1480,9 @@ mux_client_read(int fd, struct sshbuf *b, size_t need, int timeout_ms) | |
case EWOULDBLOCK: | ||
#endif | ||
case EAGAIN: | ||
if (waitrfd(fd, &timeout_ms) == -1) | ||
if (waitrfd(fd, &timeout_ms, | ||
&muxclient_terminate) == -1 && | ||
errno != EINTR) | ||
return -1; /* timeout */ | ||
/* FALLTHROUGH */ | ||
case EINTR: | ||
|