DragonFlyBSD Kernel Audit
DF-1691 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/powermng/viapm/viapm.c
+++ b/sys/dev/powermng/viapm/viapm.c
@@ -852,6 +852,9 @@
 	len = VIAPM_INB(SMBHDATA0);
 	i = VIAPM_INB(SMBHCTRL); 		/* reset counter */
 
+	if (len > 32)
+		len = 32;
+
 	/* read the 32-byte internal buffer */
 	for (i = 0; i < len; i++) {
 		data = VIAPM_INB(SMBHBLOCK);