⬢ DragonFlyBSD Kernel Audit
DF-5489 / fix.diff
← back to finding ↓ download raw
--- a/sys/bus/u4b/serial/uvisor.c	2026-10-06 08:47:30.761425160 +0000
+++ b/sys/bus/u4b/serial/uvisor.c	2026-10-06 08:47:30.777424955 +0000
@@ -391,6 +391,15 @@
 		if (err) {
 			goto done;
 		}
+		if (actlen < UVISOR_CONNECTION_INFO_SIZE) {
+			/* short transfer: the tail of coninfo stays
+			 * uninitialized (usbd_do_request_flags never
+			 * zero-pads) -- do not consume it below */
+			DPRINTF("short connection info: actlen=%u\n",
+			    actlen);
+			err = USB_ERR_INVAL;
+			goto done;
+		}
 	}
 #ifdef USB_DEBUG
 	if (sc->sc_flag & UVISOR_FLAG_VISOR) {