diff --git a/redis-cli.c b/redis-cli.c index 38c986b34b81e32a757140ef395af698bd7b1c7e..cd106684fbca6152a4fac051e4f048456d710dcd 100644 --- a/redis-cli.c +++ b/redis-cli.c @@ -135,11 +135,13 @@ static sds cliReadLine(int fd) { while(1) { char c; + ssize_t ret; - if (read(fd,&c,1) == -1) { + ret = read(fd,&c,1); + if (ret == -1) { sdsfree(line); return NULL; - } else if (c == '\n') { + } else if ((ret == 0) || (c == '\n')) { break; } else { line = sdscatlen(line,&c,1);