imap4d: respect errors from read(), remove debug prints

When read() failed, we were casting the -1 return to
unsigned, which would cause us to index out of bounds.
found using dovecot imap test suite. While we're here,
let's remove the stray debug prints.
This commit is contained in:
Ori Bernstein 2020-07-03 11:29:45 -07:00
parent a3a4f5c3e3
commit a71450412a

View file

@ -183,8 +183,8 @@ void
fetchbody(Msg *m, Fetch *f)
{
char *s, *t, *e, buf[Bufsize + 2];
uint n, start, stop, pos;
int fd, nn;
uint start, stop, pos;
int fd, n, nn;
Pair p;
if(m == nil){
@ -262,8 +262,7 @@ fetchbody(Msg *m, Fetch *f)
n = read(fd, &buf[1], n);
//ilog("read %ld at %d stop %ld\n", n, pos, stop);
if(n <= 0){
ilog("must fill %ld bytes\n", stop - pos);
fprint(2, "must fill %d bytes\n", stop - pos);
//ilog("must fill %ld bytes\n", stop - pos);
fetchbodyfill(stop - pos);
break;
}