Commit b91f03a4 authored by Luc Heinrich's avatar Luc Heinrich
Browse files

Fixed redis-cli readLine loop to correctly handle EOF.

When using the shutdown command with redis-cli the server saves the database and, if successful, silently closes the connection. The redis-cli tool did not correcty handle this EOF case in its readLine loop and was therefore infinitely looping - and eating 100% of the CPU - while waiting for some data which would never come.
parent 46713f83
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment