- djm@cvs.openbsd.org 2014/07/17 00:10:18

[mux.c]
     preserve errno across syscall
This commit is contained in:
Damien Miller 2014-07-18 15:03:27 +10:00
parent 1b83320628
commit f42f7684ec
2 changed files with 7 additions and 2 deletions

View File

@ -22,6 +22,9 @@
- djm@cvs.openbsd.org 2014/07/17 00:10:56 - djm@cvs.openbsd.org 2014/07/17 00:10:56
[sandbox-systrace.c] [sandbox-systrace.c]
ifdef SYS_sendsyslog so this will compile without patching on -stable ifdef SYS_sendsyslog so this will compile without patching on -stable
- djm@cvs.openbsd.org 2014/07/17 00:10:18
[mux.c]
preserve errno across syscall
20140717 20140717
- (djm) [digest-openssl.c] Preserve array order when disabling digests. - (djm) [digest-openssl.c] Preserve array order when disabling digests.

6
mux.c
View File

@ -1,4 +1,4 @@
/* $OpenBSD: mux.c,v 1.46 2014/07/15 15:54:14 millert Exp $ */ /* $OpenBSD: mux.c,v 1.47 2014/07/17 00:10:18 djm Exp $ */
/* /*
* Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org> * Copyright (c) 2002-2008 Damien Miller <djm@openbsd.org>
* *
@ -1177,6 +1177,7 @@ muxserver_listen(void)
char *orig_control_path = options.control_path; char *orig_control_path = options.control_path;
char rbuf[16+1]; char rbuf[16+1];
u_int i, r; u_int i, r;
int oerrno;
if (options.control_path == NULL || if (options.control_path == NULL ||
options.control_master == SSHCTL_MASTER_NO) options.control_master == SSHCTL_MASTER_NO)
@ -1203,9 +1204,10 @@ muxserver_listen(void)
old_umask = umask(0177); old_umask = umask(0177);
muxserver_sock = unix_listener(options.control_path, 64, 0); muxserver_sock = unix_listener(options.control_path, 64, 0);
oerrno = errno;
umask(old_umask); umask(old_umask);
if (muxserver_sock < 0) { if (muxserver_sock < 0) {
if (errno == EINVAL || errno == EADDRINUSE) { if (oerrno == EINVAL || oerrno == EADDRINUSE) {
error("ControlSocket %s already exists, " error("ControlSocket %s already exists, "
"disabling multiplexing", options.control_path); "disabling multiplexing", options.control_path);
disable_mux_master: disable_mux_master: