From b2d79920255fc405b972e4c900e47f4a1046e044 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 25 Feb 2018 17:11:18 +0100 Subject: kernel: properly handle bad attach specifiers - only accept decimal for numeric device id's - exclude negative device id's - device id's out of range yield Enodev --- sys/src/9/port/devloopback.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'sys/src/9/port/devloopback.c') diff --git a/sys/src/9/port/devloopback.c b/sys/src/9/port/devloopback.c index 76f37890a..c251387a3 100644 --- a/sys/src/9/port/devloopback.c +++ b/sys/src/9/port/devloopback.c @@ -121,14 +121,11 @@ loopbackattach(char *spec) Queue *q; Chan *c; int chan; - int dev; + ulong dev; - dev = 0; - if(spec != nil){ - dev = atoi(spec); - if(dev >= Nloopbacks) - error(Ebadspec); - } + dev = strtoul(spec, nil, 10); + if(dev >= Nloopbacks) + error(Enodev); c = devattach('X', spec); if(waserror()){ -- cgit v1.2.3