kernel: be more careful about argc for /dev/drivers writes

Not crashing on 'chdev &' is important.
This commit is contained in:
Jacob Moody 2022-05-28 17:23:41 +00:00
parent 01a6de812c
commit b75e549126

View file

@ -705,18 +705,22 @@ conswrite(Chan *c, void *va, long n, vlong off)
error(Ebadarg);
if(ct->index != CMchdev)
error(Ebadarg);
if(cb->nf < 2 || cb->nf > 3)
if(cb->nf == 1)
error(Ebadarg);
invert = 1;
a = cb->f[2];
a = "";
switch(cb->f[1][0]){
case '&':
if(cb->nf != 3)
error(Ebadarg);
a = cb->f[2];
if(cb->f[1][1] == '~')
invert--;
break;
case '~':
a = "";
if(cb->nf != 2)
error(Ebadarg);
break;
default:
error(Ebadarg);