From 308c8b147bb6a5598902870675c6c5d5975470aa Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 24 May 2005 16:39:03 +1000 Subject: [PATCH] nicer fix from millert@ --- openbsd-compat/readpassphrase.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openbsd-compat/readpassphrase.c b/openbsd-compat/readpassphrase.c index b5f4d1ce4..5138b4034 100644 --- a/openbsd-compat/readpassphrase.c +++ b/openbsd-compat/readpassphrase.c @@ -137,10 +137,11 @@ restart: (void)write(output, "\n", 1); /* Restore old terminal settings and signals. */ - if (memcmp(&term, &oterm, sizeof(term)) != 0) - for (;tcsetattr(input, _T_FLUSH, &oterm) == -1 && - errno == EINTR;) - ; + if (memcmp(&term, &oterm, sizeof(term)) != 0) { + while (tcsetattr(input, TCSANOW|TCSASOFT, &oterm) == -1 && + errno == EINTR) + continue; + } (void)sigaction(SIGALRM, &savealrm, NULL); (void)sigaction(SIGHUP, &savehup, NULL); (void)sigaction(SIGINT, &saveint, NULL);