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; }