From a507515e083a208609badf2032b1cf4a61571fc5 Mon Sep 17 00:00:00 2001 From: iedowse Date: Tue, 12 Dec 2000 12:04:02 +0000 Subject: 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 --- sbin/restore/interactive.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'sbin/restore/interactive.c') diff --git a/sbin/restore/interactive.c b/sbin/restore/interactive.c index ca0bc84..1fd8930 100644 --- a/sbin/restore/interactive.c +++ b/sbin/restore/interactive.c @@ -325,12 +325,11 @@ getcmd(curdir, cmd, name, size, ap) do { fprintf(stderr, "restore > "); (void) fflush(stderr); - (void) fgets(input, BUFSIZ, terminal); - } while (!feof(terminal) && input[0] == '\n'); - if (feof(terminal)) { - (void) strcpy(cmd, "quit"); - return; - } + if (fgets(input, BUFSIZ, terminal) == NULL) { + strcpy(cmd, "quit"); + return; + } + } while (input[0] == '\n'); for (cp = &input[strlen(input) - 2]; *cp == ' ' || *cp == '\t'; cp--) /* trim off trailing white space and newline */; *++cp = '\0'; -- cgit v1.1