diff options
author | Damien Miller <djm@mindrot.org> | 2014-07-18 15:03:27 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2014-07-18 15:03:27 +1000 |
commit | f42f7684ecbeec6ce50e0310f80b3d6da2aaf533 (patch) | |
tree | 5a97b22b063cbd33b7d8c2991bdc3a5f76eeee72 | |
parent | 1b83320628cb0733e3688b85bfe4d388a7c51909 (diff) |
- djm@cvs.openbsd.org 2014/07/17 00:10:18
[mux.c]
preserve errno across syscall
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | mux.c | 6 |
2 files changed, 7 insertions, 2 deletions
@@ -22,6 +22,9 @@ | |||
22 | - djm@cvs.openbsd.org 2014/07/17 00:10:56 | 22 | - djm@cvs.openbsd.org 2014/07/17 00:10:56 |
23 | [sandbox-systrace.c] | 23 | [sandbox-systrace.c] |
24 | ifdef SYS_sendsyslog so this will compile without patching on -stable | 24 | ifdef SYS_sendsyslog so this will compile without patching on -stable |
25 | - djm@cvs.openbsd.org 2014/07/17 00:10:18 | ||
26 | [mux.c] | ||
27 | preserve errno across syscall | ||
25 | 28 | ||
26 | 20140717 | 29 | 20140717 |
27 | - (djm) [digest-openssl.c] Preserve array order when disabling digests. | 30 | - (djm) [digest-openssl.c] Preserve array order when disabling digests. |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: mux.c,v 1.46 2014/07/15 15:54:14 millert Exp $ */ | 1 | /* $OpenBSD: mux.c,v 1.47 2014/07/17 00:10:18 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -1177,6 +1177,7 @@ muxserver_listen(void) | |||
1177 | char *orig_control_path = options.control_path; | 1177 | char *orig_control_path = options.control_path; |
1178 | char rbuf[16+1]; | 1178 | char rbuf[16+1]; |
1179 | u_int i, r; | 1179 | u_int i, r; |
1180 | int oerrno; | ||
1180 | 1181 | ||
1181 | if (options.control_path == NULL || | 1182 | if (options.control_path == NULL || |
1182 | options.control_master == SSHCTL_MASTER_NO) | 1183 | options.control_master == SSHCTL_MASTER_NO) |
@@ -1203,9 +1204,10 @@ muxserver_listen(void) | |||
1203 | 1204 | ||
1204 | old_umask = umask(0177); | 1205 | old_umask = umask(0177); |
1205 | muxserver_sock = unix_listener(options.control_path, 64, 0); | 1206 | muxserver_sock = unix_listener(options.control_path, 64, 0); |
1207 | oerrno = errno; | ||
1206 | umask(old_umask); | 1208 | umask(old_umask); |
1207 | if (muxserver_sock < 0) { | 1209 | if (muxserver_sock < 0) { |
1208 | if (errno == EINVAL || errno == EADDRINUSE) { | 1210 | if (oerrno == EINVAL || oerrno == EADDRINUSE) { |
1209 | error("ControlSocket %s already exists, " | 1211 | error("ControlSocket %s already exists, " |
1210 | "disabling multiplexing", options.control_path); | 1212 | "disabling multiplexing", options.control_path); |
1211 | disable_mux_master: | 1213 | disable_mux_master: |