diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c index e6abb1779a69..f905feff1b56 100644 --- a/sys/kern/subr_bus.c +++ b/sys/kern/subr_bus.c @@ -5499,11 +5499,20 @@ sysctl_devices(SYSCTL_HANDLER_ARGS) udev->dv_flags = dev->flags; udev->dv_state = dev->state; sbuf_new(&sb, udev->dv_fields, sizeof(udev->dv_fields), SBUF_FIXEDLEN); - sbuf_cat(&sb, dev->nameunit); + if (dev->nameunit != NULL) + sbuf_cat(&sb, dev->nameunit); + else + sbuf_putc(&sb, '\0'); sbuf_putc(&sb, '\0'); - sbuf_cat(&sb, dev->desc); + if (dev->desc != NULL) + sbuf_cat(&sb, dev->desc); + else + sbuf_putc(&sb, '\0'); sbuf_putc(&sb, '\0'); - sbuf_cat(&sb, dev->driver != NULL ? dev->driver->name : '\0'); + if (dev->driver != NULL) + sbuf_cat(&sb, dev->driver->name); + else + sbuf_putc(&sb, '\0'); sbuf_putc(&sb, '\0'); bus_child_pnpinfo_sb(dev, &sb); sbuf_putc(&sb, '\0');