[Bug 266862] devctl getpath cause panic invoking with root0

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 06 Oct 2022 10:49:25 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266862

--- Comment #1 from Takanori Watanabe <takawata@FreeBSD.org> ---
The code was not be compiled. Correct code is as follows. 
With this patch, 
% devctl devpath FreeBSD root0
does not cause panic and show error message, as I expected.
devctl: Failed to get path via FreeBSD to root0: Cannot allocate memory


diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 487e573451ed..041e77259313 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -5310,13 +5310,9 @@ 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 rv;

        sb = sbuf_new(NULL, NULL, 0, SBUF_AUTOEXTEND | SBUF_INCLUDENUL);
-       error = BUS_GET_DEVICE_PATH(parent, dev, locator, sb);
+       error = BUS_GET_DEVICE_PATH(device_get_parent(dev), 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.