devmnt: ignore zero-length blocks.
devssl: don't generate zero-length blocks.
[rsc] --rw-rw-r-- M 323293 glenda sys 21549 Nov 4 07:39 sys/src/9/port/devmnt.c
/n/sourcesdump/2005/1104/plan9/sys/src/9/port/devmnt.c:850,856 -
/n/sourcesdump/2005/1105/plan9/sys/src/9/port/devmnt.c:850,856
b = devtab[m->c->type]->bread(m->c, m->msize, 0);
if(b == nil)
return -1;
- if(BLEN(b) == 0){
+ if(blocklen(b) == 0){
freeblist(b);
return -1;
}
[rsc] --rw-rw-r-- M 323293 glenda sys 26133 Nov 4 07:39 sys/src/9/port/devssl.c
/n/sourcesdump/2005/1104/plan9/sys/src/9/port/devssl.c:618,624 -
/n/sourcesdump/2005/1105/plan9/sys/src/9/port/devssl.c:618,625
if(b == nil)
error("ssl message too short (digesting)");
checkdigestb(s, b);
- b->rp += s->diglen;
+ pullblock(&b, s->diglen);
+ len -= s->diglen;
break;
case Sdigenc:
b = decryptb(s, b);
/n/sourcesdump/2005/1104/plan9/sys/src/9/port/devssl.c:626,632 -
/n/sourcesdump/2005/1105/plan9/sys/src/9/port/devssl.c:627,633
if(b == nil)
error("ssl message too short (dig+enc)");
checkdigestb(s, b);
- b->rp += s->diglen;
+ pullblock(&b, s->diglen);
len -= s->diglen;
break;
}
|