[Bug 266862] devctl getpath cause panic invoking with root0
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 266862] devctl getpath cause panic invoking with root0"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 266862] devctl getpath cause panic invoking with root0"
- Reply: bugzilla-noreply_a_freebsd.org: "[Bug 266862] devctl getpath cause panic invoking with root0"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 06 Oct 2022 06:17:48 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266862 Bug ID: 266862 Summary: devctl getpath cause panic invoking with root0 Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: takawata@FreeBSD.org Invoking % devctl devpath FreeBSD root0 cause kernel panic This may because parent of "root0" device is NULL and invoking BUS_GET_DEVICE_PATH(device_get_parent(dev), dev, locator, sb); references NULL pointer. So check before invoking it. Following code is not tested yet. diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index 041e77259313..92447f825643 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -5310,9 +5310,13 @@ device_get_path(device_t dev, const char *locator) ssize_t len; char *rv = NULL; int error; + device_t parent = device_get_parent(dev); + + if(parent == NULL) + return EINVAL; sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND | SBUF_INCLUDENUL); - error = BUS_GET_DEVICE_PATH(device_get_parent(dev), dev, locator, sb); + error = BUS_GET_DEVICE_PATH(parent, dev, locator, sb); sbuf_finish(sb); /* Note: errors checked with sbuf_len() below */ if (error != 0) goto out; -- You are receiving this mail because: You are the assignee for the bug.