summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_bus.c
diff options
context:
space:
mode:
authoreadler <eadler@FreeBSD.org>2012-01-15 07:09:18 +0000
committereadler <eadler@FreeBSD.org>2012-01-15 07:09:18 +0000
commite07bec5a9c09cadd3c6ef93b38eb4aeefdb7a649 (patch)
tree4c9fac1857c8c7492ba11985ba62504841118551 /sys/kern/subr_bus.c
parent19c997ffb187fa972ee676f70314969915c35584 (diff)
downloadFreeBSD-src-e07bec5a9c09cadd3c6ef93b38eb4aeefdb7a649.zip
FreeBSD-src-e07bec5a9c09cadd3c6ef93b38eb4aeefdb7a649.tar.gz
- Fix undefined behavior when device_get_name is null
- Make error message more informative PR: kern/149800 Submitted by: olgeni Approved by: cperciva MFC after: 1 week
Diffstat (limited to 'sys/kern/subr_bus.c')
-rw-r--r--sys/kern/subr_bus.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index a95bdb9..cc74204 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -2020,9 +2020,15 @@ device_probe_child(device_t dev, device_t child)
if (!hasclass) {
if (device_set_devclass(child,
dl->driver->name) != 0) {
+ char const * devname =
+ device_get_name(child);
+ if (devname == NULL)
+ devname = "(unknown)";
printf("driver bug: Unable to set "
- "devclass (devname: %s)\n",
- device_get_name(child));
+ "devclass (class: %s "
+ "devname: %s)\n",
+ dl->driver->name,
+ devname);
(void)device_set_driver(child, NULL);
continue;
}
OpenPOWER on IntegriCloud