---- openssh-4.0p1/clientloop.c.orig 2005-03-01 11:24:33.000000000 +0100
-+++ openssh-4.0p1/clientloop.c 2005-03-10 15:10:05.000000000 +0100
-@@ -104,6 +104,9 @@
- */
- extern char *host;
+diff -urNp -x '*.orig' openssh-8.4p1.org/clientloop.c openssh-8.4p1/clientloop.c
+--- openssh-8.4p1.org/clientloop.c 2020-09-27 09:25:01.000000000 +0200
++++ openssh-8.4p1/clientloop.c 2021-03-01 11:29:10.909905265 +0100
+@@ -127,6 +127,9 @@ extern int fork_after_authentication_fla
+ /* Control socket */
+ extern int muxserver_sock; /* XXX use mux_client_cleanup() instead */
+/* if we process SIGPIPE */
+extern int enable_sigpipe;
+
/*
- * Flag to indicate that we have received a window change signal which has
- * not yet been processed. This will cause a message indicating the new
-@@ -1236,6 +1239,8 @@
- signal(SIGQUIT, signal_handler);
- if (signal(SIGTERM, SIG_IGN) != SIG_IGN)
- signal(SIGTERM, signal_handler);
+ * Name of the host we are connecting to. This is the name given on the
+ * command line, or the Hostname specified for the user-supplied name in a
+@@ -1301,6 +1304,8 @@ client_loop(struct ssh *ssh, int have_pt
+ ssh_signal(SIGQUIT, signal_handler);
+ if (ssh_signal(SIGTERM, SIG_IGN) != SIG_IGN)
+ ssh_signal(SIGTERM, signal_handler);
+ if (enable_sigpipe)
+ signal(SIGPIPE, signal_handler);
- signal(SIGWINCH, window_change_handler);
+ ssh_signal(SIGWINCH, window_change_handler);
if (have_pty)
-diff -urN openssh-3.9p1.org/ssh.0 openssh-3.9p1/ssh.0
---- openssh-3.9p1.org/ssh.0 2004-08-17 19:03:29.327565840 +0200
-+++ openssh-3.9p1/ssh.0 2004-08-17 19:03:41.809668272 +0200
-@@ -235,6 +235,8 @@
- that enable them to authenticate using the identities loaded into
- the agent.
+diff -urNp -x '*.orig' openssh-8.4p1.org/ssh.0 openssh-8.4p1/ssh.0
+--- openssh-8.4p1.org/ssh.0 2020-09-27 09:42:10.000000000 +0200
++++ openssh-8.4p1/ssh.0 2021-03-01 11:29:10.909905265 +0100
+@@ -446,6 +446,8 @@ DESCRIPTION
+ -y Send log information using the syslog(3) system module. By
+ default this information is sent to stderr.
-+ -B Enable SIGPIPE processing.
++ -Z Enable SIGPIPE processing.
+
- -a Disables forwarding of the authentication agent connection.
-
- -b bind_address
---- openssh-5.6p1/ssh.1~ 2010-08-24 14:05:48.000000000 +0300
-+++ openssh-5.6p1/ssh.1 2010-08-24 14:06:57.879253682 +0300
-@@ -44,7 +44,7 @@
+ ssh may additionally obtain configuration data from a per-user
+ configuration file and a system-wide configuration file. The file format
+ and configuration options are described in ssh_config(5).
+diff -urNp -x '*.orig' openssh-8.4p1.org/ssh.1 openssh-8.4p1/ssh.1
+--- openssh-8.4p1.org/ssh.1 2020-09-27 09:25:01.000000000 +0200
++++ openssh-8.4p1/ssh.1 2021-03-01 11:29:10.909905265 +0100
+@@ -42,7 +42,7 @@
+ .Nd OpenSSH remote login client
.Sh SYNOPSIS
.Nm ssh
- .Bk -words
--.Op Fl 1246AaCfgKkMNnqsTtVvXxYy
-+.Op Fl 1246AaBCfgKkMNnqsTtVvXxYy
+-.Op Fl 46AaCfGgKkMNnqsTtVvXxYy
++.Op Fl 46AaCfGgKkMNnqsTtVvXxYyZ
+ .Op Fl B Ar bind_interface
.Op Fl b Ar bind_address
.Op Fl c Ar cipher_spec
- .Op Fl D Oo Ar bind_address : Oc Ns Ar port
-@@ -425,6 +425,10 @@
- on the local machine as the source address
+@@ -142,6 +142,11 @@ on the local machine as the source addre
of the connection.
Only useful on systems with more than one address.
-+.It Fl B
+ .Pp
++.It Fl Z
+Enables processing of SIGPIPE. Useful when using ssh output as input for
+another process, for example in a shell script. Be careful - it may break
+port/X11 forwarding when used.
++.Pp
.It Fl C
Requests compression of all data (including stdin, stdout, stderr, and
- data for forwarded X11 and TCP/IP connections).
---- openssh-4.0p1/ssh.c.orig 2005-03-02 02:04:33.000000000 +0100
-+++ openssh-4.0p1/ssh.c 2005-03-10 15:11:10.000000000 +0100
-@@ -135,6 +135,9 @@
- /* Should we execute a command or invoke a subsystem? */
- int subsystem_flag = 0;
+ data for forwarded X11, TCP and
+diff -urNp -x '*.orig' openssh-8.4p1.org/ssh.c openssh-8.4p1/ssh.c
+--- openssh-8.4p1.org/ssh.c 2020-09-27 09:25:01.000000000 +0200
++++ openssh-8.4p1/ssh.c 2021-03-01 11:29:10.909905265 +0100
+@@ -190,6 +190,9 @@ struct sshbuf *command;
+ /* command to be executed */
+ struct sshbuf *command;
+/* Enable sigpipe */
+int enable_sigpipe = 0;
+
/* # of replies received for global requests */
- static int client_global_request_id = 0;
+ static int forward_confirms_pending = -1;
-@@ -199,7 +199,7 @@ static void
+@@ -203,7 +206,7 @@ static void
usage(void)
{
fprintf(stderr,
--"usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]\n"
-+"usage: ssh [-1246AaBCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]\n"
- " [-D [bind_address:]port] [-E log_file] [-e escape_char]\n"
- " [-F configfile] [-I pkcs11] [-i identity_file]\n"
- " [-L [bind_address:]port:host:hostport] [-Q protocol_feature]\n"
-@@ -330,7 +330,7 @@ main(int ac, char **av)
+-"usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address]\n"
++"usage: ssh [-46AaCfGgKkMNnqsTtVvXxYyZ] [-B bind_interface] [-b bind_address]\n"
+ " [-c cipher_spec] [-D [bind_address:]port] [-E log_file]\n"
+ " [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file]\n"
+ " [-J destination] [-L address] [-l login_name] [-m mac_spec]\n"
+@@ -699,7 +699,7 @@ main(int ac, char **av)
again:
while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx"
-- "ACD:E:F:I:KL:MNO:PQ:R:S:TVw:W:XYy")) != -1) {
-+ "ABCD:E:F:I:KL:MNO:PQ:R:S:TVw:W:XYy")) != -1) {
+- "AB:CD:E:F:GI:J:KL:MNO:P:Q:R:S:TVw:W:XYy")) != -1) { /* HUZdhjruz */
++ "AB:CD:E:F:GI:J:KL:MNO:P:Q:R:S:TVw:W:XYyZ")) != -1) { /* HUZdhjruz */
switch (opt) {
case '1':
- options.protocol = SSH_PROTO_1;
-@@ -291,6 +294,9 @@
- case 'A':
- options.forward_agent = 1;
+ fatal("SSH protocol v.1 is no longer supported");
+@@ -1066,6 +1069,9 @@ main(int ac, char **av)
+ case 'F':
+ config = optarg;
break;
-+ case 'B':
++ case 'Z':
+ enable_sigpipe = 1;
+ break;
- case 'k':
- options.gss_deleg_creds = 0;
- break;
+ default:
+ usage();
+ }