DragonFlyBSD Kernel Audit
DF-1415 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/amd/display/dc/bios/bios_parser.c b/sys/dev/drm/amd/display/dc/bios/bios_parser.c
--- a/sys/dev/drm/amd/display/dc/bios/bios_parser.c
+++ b/sys/dev/drm/amd/display/dc/bios/bios_parser.c
@@ -1812,6 +1812,8 @@
 	count = (le16_to_cpu(header->sHeader.usStructureSize)
 			- sizeof(ATOM_COMMON_TABLE_HEADER))
 				/ sizeof(ATOM_GPIO_PIN_ASSIGNMENT);
+	if (count > ARRAY_SIZE(header->asGPIO_Pin))
+		count = ARRAY_SIZE(header->asGPIO_Pin);
 	for (i = 0; i < count; ++i) {
 		if (header->asGPIO_Pin[i].ucGPIO_ID != gpio_id)
 			continue;