summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pciconf
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2014-10-22 23:35:56 +0000
committermarkj <markj@FreeBSD.org>2014-10-22 23:35:56 +0000
commit6094cae3cae38519aa465059f3d19d70ecc1318d (patch)
treecff95f41c96f2bf5d2177969298658a041245490 /usr.sbin/pciconf
parent93829a91a2930763d4aea7b590a8f449da280f1f (diff)
downloadFreeBSD-src-6094cae3cae38519aa465059f3d19d70ecc1318d.zip
FreeBSD-src-6094cae3cae38519aa465059f3d19d70ecc1318d.tar.gz
Fix some buglets in the error-handling of getdevice(). In particular, report
an error if the argument to pciconf -a doesn't have a unit number, rather than triggering an assertion failure. PR: 194506 Reported by: Anthony Cornehl <accornehl@gmail.com> Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'usr.sbin/pciconf')
-rw-r--r--usr.sbin/pciconf/pciconf.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.sbin/pciconf/pciconf.c b/usr.sbin/pciconf/pciconf.c
index 12e83ec..22bb61d 100644
--- a/usr.sbin/pciconf/pciconf.c
+++ b/usr.sbin/pciconf/pciconf.c
@@ -662,16 +662,16 @@ getdevice(const char *name)
* find the start of the unit.
*/
if (name[0] == '\0')
- err(1, "Empty device name");
+ errx(1, "Empty device name");
cp = strchr(name, '\0');
assert(cp != NULL && cp != name);
cp--;
while (cp != name && isdigit(cp[-1]))
cp--;
- if (cp == name)
+ if (cp == name || !isdigit(*cp))
errx(1, "Invalid device name");
if ((size_t)(cp - name) + 1 > sizeof(patterns[0].pd_name))
- errx(1, "Device name i2s too long");
+ errx(1, "Device name is too long");
memcpy(patterns[0].pd_name, name, cp - name);
patterns[0].pd_unit = strtol(cp, &cp, 10);
assert(*cp == '\0');
OpenPOWER on IntegriCloud