[dovecot-cvs] dovecot/src/lib istream-file.c,1.19,1.20
cras at dovecot.org
cras at dovecot.org
Sun Aug 22 15:09:27 EEST 2004
Update of /home/cvs/dovecot/src/lib
In directory talvi:/tmp/cvs-serv6405/lib
Modified Files:
istream-file.c
Log Message:
_read() never returns 0 for files.
Index: istream-file.c
===================================================================
RCS file: /home/cvs/dovecot/src/lib/istream-file.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- istream-file.c 22 Aug 2004 04:00:06 -0000 1.19
+++ istream-file.c 22 Aug 2004 12:09:25 -0000 1.20
@@ -109,9 +109,11 @@
ret = -1;
if (fstream->file) {
- ret = pread(stream->fd, stream->w_buffer + stream->pos, size,
- stream->istream.v_offset +
- (stream->pos - stream->skip));
+ do {
+ ret = pread(stream->fd, stream->w_buffer + stream->pos,
+ size, stream->istream.v_offset +
+ (stream->pos - stream->skip));
+ } while (ret < 0 && errno == EINTR);
} else {
ret = read(stream->fd, stream->w_buffer + stream->pos, size);
}
@@ -147,6 +149,7 @@
}
stream->pos += ret;
+ i_assert(ret != 0 || !fstream->file);
return ret;
}
More information about the dovecot-cvs
mailing list