diff -r 8ad86d0a6a53 -r 2e0fb4130bfb util.c --- a/util.c Wed Jul 12 17:17:15 2006 +0200 +++ b/util.c Wed Jul 12 17:50:31 2006 +0200 @@ -126,13 +126,14 @@ perror(" failed"); } else { - n = 0; + l = n = 0; close(pfd[1]); - while(l > n) { + while(n < len) { if((l = read(pfd[0], buf + n, len - n)) < 1) break; n += l; } + while(l > n); close(pfd[0]); buf[n < len ? n : len - 1] = 0; }