⬢ DragonFlyBSD Kernel Audit
DF-2330 / fix.diff
← back to finding ↓ download raw
--- a/sys/bus/smbus/amdsmb/amdsmb.c
+++ b/sys/bus/smbus/amdsmb/amdsmb.c
@@ -531,6 +531,8 @@
 
 	if ((error = amdsmb_wait(sc)) == SMB_ENOERR) {
 		amdsmb_ec_read(sc, SMB_BCNT, &len);
+		if (len > 32)		/* data register file is 32 entries */
+			len = 32;
 		for (i = 0; i < len; i++) {
 			amdsmb_ec_read(sc, SMB_DATA + i, &data);
 			if (i < *count)