pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
for (;;) {
if ((l=getline(line, size, f)) < 0) {
- rv = errno;
+ rv = ferror(f) ? errno : 0;
free(*line);
*line = 0;
gr = 0;
rv = errno;
free(*line);
*line = 0;
- return 0;
+ gr = 0;
+ goto end;
}
if (*mems) {
mem[0][0] = mems;