From 5eade881a803129e24517ffd93d34867966ba814 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Sat, 29 Aug 2020 09:59:52 +0000 Subject: [PATCH] Avoid NULL pointer dereferences Add back NULL pointer checks accidentally dropped in r364946. We need to append a NUL character when that happens. --- sys/kern/subr_bus.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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');