On Fri, 22 Nov 2013, Stuart Henderson wrote: > do { > wr = write(fileno(fout), buf + d, rd); > - if (wr == -1 && errno == EPIPE) > - break; > - d += wr; > - rd -= wr; > + if (wr == -1) { > + if (errno == EPIPE) > + break; > + } else { > + d += wr; > + rd -= wr; > + } > } while (d < c);
That still loops endlessly for errors other than EPIPE.