M port/devcons.c => port/devcons.c +1 -0
@@ 837,6 837,7 @@ conswrite(Chan *c, void *va, long n, ulong offset)
memmove(u->p->user, buf, NAMELEN);
else
error(Eperm);
+ memset(u->p->pgrp->crypt->key, 0, DESKEYLEN);
if(!cpuserver && strcmp(eve, "bootes")==0)
memmove(eve, u->p->user, NAMELEN);
break;
M port/pgrp.c => port/pgrp.c +3 -3
@@ 32,15 32,15 @@ newcrypt(void)
return c;
}
- cryptalloc.free = malloc(sizeof(Crypt)*conf.nproc);
+ cryptalloc.free = xalloc(sizeof(Crypt)*conf.nproc);
if(cryptalloc.free == 0)
panic("newcrypt");
- for(c = cryptalloc.free+1; c < cryptalloc.free+conf.nproc-1; c++)
+ for(c = cryptalloc.free; c < cryptalloc.free+conf.nproc-1; c++)
c->next = c+1;
palloc.cmembase = (ulong)cryptalloc.free;
- palloc.cmembase = palloc.cmembase+(sizeof(Crypt)*conf.nproc);
+ palloc.cmemtop = palloc.cmembase+(sizeof(Crypt)*conf.nproc);
unlock(&cryptalloc);
return newcrypt();
}