From d989adadd33ed305a22f555d7d69db3cff4e83da Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 25 Jun 2007 18:34:43 +1000 Subject: - djm@cvs.openbsd.org 2007/06/14 21:43:25 [ssh.c] handle EINTR when waiting for mux exit status properly --- ChangeLog | 5 ++++- ssh.c | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d1a244ab..880ec45e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,9 @@ [scp.c] don't ftruncate() non-regular files; bz#1236 reported by wood AT xmission.com; ok dtucker@ + - djm@cvs.openbsd.org 2007/06/14 21:43:25 + [ssh.c] + handle EINTR when waiting for mux exit status properly 20070614 - (dtucker) [cipher-ctr.c umac.c openbsd-compat/openssl-compat.h] Move the @@ -3079,4 +3082,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.4703 2007/06/25 08:32:33 dtucker Exp $ +$Id: ChangeLog,v 1.4704 2007/06/25 08:34:43 dtucker Exp $ diff --git a/ssh.c b/ssh.c index 9af61d3c..ab9da1e9 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.298 2007/06/12 11:45:27 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.299 2007/06/14 21:43:25 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1468,8 +1468,11 @@ control_client(const char *path) debug2("Received EOF from master"); break; } - if (r == -1 && errno != EINTR) + if (r == -1) { + if (errno == EINTR) + continue; fatal("%s: read %s", __func__, strerror(errno)); + } i += r; } close(sock); -- cgit v1.2.3