mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
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
This commit is contained in:
parent
b9f6af45a5
commit
d4fef7d342
1 changed files with 3 additions and 3 deletions
|
|
@ -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');
|
||||
|
|
|
|||
Loading…
Reference in a new issue