diff --git a/ChangeLog b/ChangeLog index f3c118cf7..8609e2407 100644 --- a/ChangeLog +++ b/ChangeLog @@ -38,6 +38,9 @@ - dtucker@cvs.openbsd.org 2007/11/03 02:00:32 [ssh.c] Use xstrdup/xfree when saving pwname and pwdir; ok deraadt@ + - deraadt@cvs.openbsd.org 2007/11/03 02:03:49 + [ssh.c] + avoid errno trashing in signal handler; ok dtucker 20071030 - (djm) OpenBSD CVS Sync @@ -3455,4 +3458,4 @@ OpenServer 6 and add osr5bigcrypt support so when someone migrates passwords between UnixWare and OpenServer they will still work. OK dtucker@ -$Id: ChangeLog,v 1.4805 2007/12/02 12:21:16 dtucker Exp $ +$Id: ChangeLog,v 1.4806 2007/12/02 12:22:52 dtucker Exp $ diff --git a/ssh.c b/ssh.c index 7e23acff6..e8906e00d 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.307 2007/11/03 02:00:32 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.308 2007/11/03 02:03:49 deraadt Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1294,8 +1294,12 @@ control_client_sighandler(int signo) static void control_client_sigrelay(int signo) { + int save_errno = errno; + if (control_server_pid > 1) kill(control_server_pid, signo); + + errno = save_errno; } static int