From: djm Date: Thu, 17 Jul 2014 00:10:18 +0000 (+0000) Subject: preserve errno across syscall X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=f880400a6b2ad9d31e4002a25c0797dc225f4908;p=openbsd preserve errno across syscall --- diff --git a/usr.bin/ssh/mux.c b/usr.bin/ssh/mux.c index 7d535965b44..e9d01d647d0 100644 --- a/usr.bin/ssh/mux.c +++ b/usr.bin/ssh/mux.c @@ -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 * @@ -1164,6 +1164,7 @@ muxserver_listen(void) char *orig_control_path = options.control_path; char rbuf[16+1]; u_int i, r; + int oerrno; if (options.control_path == NULL || options.control_master == SSHCTL_MASTER_NO) @@ -1190,9 +1191,10 @@ muxserver_listen(void) old_umask = umask(0177); muxserver_sock = unix_listener(options.control_path, 64, 0); + oerrno = errno; umask(old_umask); if (muxserver_sock < 0) { - if (errno == EINVAL || errno == EADDRINUSE) { + if (oerrno == EINVAL || oerrno == EADDRINUSE) { error("ControlSocket %s already exists, " "disabling multiplexing", options.control_path); disable_mux_master: