tools: kwboot: properly quit when read() returns 0
When kwboot is attached to a terminal which disappears such as one connected via an unplugged USB cable, read() returns 0, making kwboot loop until a key is pressed in the terminal. The only case where read() may return 0 here is when the terminal is closed anyway, so let's properly handle this one and report is similar to other errors. Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
3475a71d4e
commit
4469bd7b53
@ -182,7 +182,7 @@ kwboot_tty_recv(int fd, void *buf, size_t len, int timeo)
|
|||||||
}
|
}
|
||||||
|
|
||||||
n = read(fd, buf, len);
|
n = read(fd, buf, len);
|
||||||
if (n < 0)
|
if (n <= 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
buf = (char *)buf + n;
|
buf = (char *)buf + n;
|
||||||
@ -466,7 +466,7 @@ kwboot_term_pipe(int in, int out, char *quit, int *s)
|
|||||||
char _buf[128], *buf = _buf;
|
char _buf[128], *buf = _buf;
|
||||||
|
|
||||||
nin = read(in, buf, sizeof(buf));
|
nin = read(in, buf, sizeof(buf));
|
||||||
if (nin < 0)
|
if (nin <= 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (quit) {
|
if (quit) {
|
||||||
|
Loading…
Reference in New Issue
Block a user