From 1474de2212a54cc035d9fe4b5fc0c700cb9599da Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Fri, 1 May 1998 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1998-05-01 --- pc/devata.c | 5 ++++- port/devssl.c | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pc/devata.c b/pc/devata.c index 2b539b44c0767a021ea426d4009b4f0ceb9e310a..27a2277bdd76714daa8279f59a76e1d810ce2f30 100644 --- a/pc/devata.c +++ b/pc/devata.c @@ -1779,7 +1779,10 @@ retry: print("short read\n"); break; } - memmove(a, cp->buf + o, m); + if(cmd == Cread2) + memmove(a, cp->buf + o, m); + else + cp->buf += m; n -= m; off += m; a += m; diff --git a/port/devssl.c b/port/devssl.c index cc22f7f79f539cd02a5187219d62d02c3daeaf55..9f1eda95e0d06cec7368ee9d46461149c1f6dfca 100644 --- a/port/devssl.c +++ b/port/devssl.c @@ -510,6 +510,7 @@ sslbread(Chan *c, long n, ulong) error("ssl message too short"); checkdigestb(s.s, s.s->processed); s.s->processed->rp += s.s->diglen; + len -= s.s->diglen; break; } s.s->in.mid++; @@ -630,7 +631,7 @@ sslbwrite(Chan *c, Block *b, ulong offset) if(m > s.s->max){ m = s.s->max; } else if(s.s->blocklen != 1){ - pad = m%s.s->blocklen; + pad = (m + s.s->diglen)%s.s->blocklen; if(pad){ if(m > s.s->maxpad){ pad = 0; @@ -1066,13 +1067,13 @@ decryptb(Dstate *s, Block *inb) case DESECB: ds = s->in.state; ep = b->rp + BLEN(b); - for(p = b->rp + s->diglen; p < ep; p += 8) + for(p = b->rp; p < ep; p += 8) block_cipher(ds->expanded, p, 1); break; case DESCBC: ds = s->in.state; ep = b->rp + BLEN(b); - for(p = b->rp + s->diglen; p < ep;){ + for(p = b->rp; p < ep;){ memmove(tmp, p, 8); block_cipher(ds->expanded, p, 1); tp = tmp;