don't convert "fubar" to a control endpoint (type 0). Reference: /n/atom/patch/applied/usbepname Date: Thu Mar 13 21:26:11 CET 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/nix/port/devusb.c Thu Mar 13 21:24:43 2014 +++ /sys/src/nix/port/devusb.c Thu Mar 13 21:24:43 2014 @@ -198,13 +198,16 @@ static int name2ttype(char *name) { + char *p; int i; for(i = 0; i < nelem(ttname); i++) if(strcmp(name, ttname[i]) == 0) return i; /* may be a std. USB ep. type */ - i = strtol(name, nil, 0); + i = strtol(name, &p, 0); + if(*p != 0) + return Tnone; switch(i+1){ case Tctl: case Tiso: --- /sys/src/9/bcm/devusb.c Thu Mar 13 21:24:43 2014 +++ /sys/src/9/bcm/devusb.c Thu Mar 13 21:24:43 2014 @@ -205,13 +205,16 @@ static int name2ttype(char *name) { + char *p; int i; for(i = 0; i < nelem(ttname); i++) if(strcmp(name, ttname[i]) == 0) return i; /* may be a std. USB ep. type */ - i = strtol(name, nil, 0); + i = strtol(name, &p, 0); + if(*p != 0) + return Tnone; switch(i+1){ case Tctl: case Tiso: --- /sys/src/9/kw/devusb.c Thu Mar 13 21:24:43 2014 +++ /sys/src/9/kw/devusb.c Thu Mar 13 21:24:43 2014 @@ -205,13 +205,16 @@ static int name2ttype(char *name) { + char *p; int i; for(i = 0; i < nelem(ttname); i++) if(strcmp(name, ttname[i]) == 0) return i; /* may be a std. USB ep. type */ - i = strtol(name, nil, 0); + i = strtol(name, &p, 0); + if(*p != 0) + return Tnone; switch(i+1){ case Tctl: case Tiso: --- /sys/src/9/omap/devusb.c Thu Mar 13 21:24:43 2014 +++ /sys/src/9/omap/devusb.c Thu Mar 13 21:24:43 2014 @@ -205,13 +205,16 @@ static int name2ttype(char *name) { + char *p; int i; for(i = 0; i < nelem(ttname); i++) if(strcmp(name, ttname[i]) == 0) return i; /* may be a std. USB ep. type */ - i = strtol(name, nil, 0); + i = strtol(name, &p, 0); + if(*p != 0) + return Tnone; switch(i+1){ case Tctl: case Tiso: --- /sys/src/9/pc/devusb.c Thu Mar 13 21:24:43 2014 +++ /sys/src/9/pc/devusb.c Thu Mar 13 21:24:43 2014 @@ -205,13 +205,16 @@ static int name2ttype(char *name) { + char *p; int i; for(i = 0; i < nelem(ttname); i++) if(strcmp(name, ttname[i]) == 0) return i; /* may be a std. USB ep. type */ - i = strtol(name, nil, 0); + i = strtol(name, &p, 0); + if(*p != 0) + return Tnone; switch(i+1){ case Tctl: case Tiso: --- /sys/src/9/pcpae/devusb.c Thu Mar 13 21:24:43 2014 +++ /sys/src/9/pcpae/devusb.c Thu Mar 13 21:24:43 2014 @@ -205,13 +205,16 @@ static int name2ttype(char *name) { + char *p; int i; for(i = 0; i < nelem(ttname); i++) if(strcmp(name, ttname[i]) == 0) return i; /* may be a std. USB ep. type */ - i = strtol(name, nil, 0); + i = strtol(name, &p, 0); + if(*p != 0) + return Tnone; switch(i+1){ case Tctl: case Tiso: