diff options
author | iedowse <iedowse@FreeBSD.org> | 2000-12-12 12:04:02 +0000 |
---|---|---|
committer | iedowse <iedowse@FreeBSD.org> | 2000-12-12 12:04:02 +0000 |
commit | a507515e083a208609badf2032b1cf4a61571fc5 (patch) | |
tree | 94a9260b8ef2a70ef3a47ebefed8a70ab8b5ea54 /sbin/restore/utilities.c | |
parent | 513cdb008249fa2a1faeb31a407c87138df1cd2b (diff) | |
download | FreeBSD-src-a507515e083a208609badf2032b1cf4a61571fc5.zip FreeBSD-src-a507515e083a208609badf2032b1cf4a61571fc5.tar.gz |
Stop restore from looping under certain error conditions. This
corrects cases where restore would spew an infinite stream of
"Changing volumes on pipe input?" messages, or would loop waiting
for a response to the "set owner/mode for '.'" question.
PR: bin/14250
Reviewed by: dwmalone
Diffstat (limited to 'sbin/restore/utilities.c')
-rw-r--r-- | sbin/restore/utilities.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sbin/restore/utilities.c b/sbin/restore/utilities.c index b51f90c..b7681f7 100644 --- a/sbin/restore/utilities.c +++ b/sbin/restore/utilities.c @@ -405,14 +405,14 @@ int reply(question) char *question; { - char c; + int c; do { fprintf(stderr, "%s? [yn] ", question); (void) fflush(stderr); c = getc(terminal); while (c != '\n' && getc(terminal) != '\n') - if (feof(terminal)) + if (c == EOF) return (FAIL); } while (c != 'y' && c != 'n'); if (c == 'y') |