⬢ DragonFlyBSD Kernel Audit
DF-3890 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/amd/amdgpu/kv_dpm.c
+++ b/sys/dev/drm/amd/amdgpu/kv_dpm.c
@@ -87,7 +87,10 @@
 			if (vid_mapping_table->entries[i].vid_2bit == vid_2bit)
 				return vid_mapping_table->entries[i].vid_7bit;
 		}
-		return vid_mapping_table->entries[vid_mapping_table->num_entries - 1].vid_7bit;
+		if (vid_mapping_table->num_entries)
+			return vid_mapping_table->entries[vid_mapping_table->num_entries - 1].vid_7bit;
+		/* empty mapping table (all VBIOS usVoltageID == 0) */
+		return 0;
 	}
 }
 
@@ -111,7 +114,9 @@
 				return vid_mapping_table->entries[i].vid_2bit;
 		}
 
-		return vid_mapping_table->entries[vid_mapping_table->num_entries - 1].vid_2bit;
+		if (vid_mapping_table->num_entries)
+			return vid_mapping_table->entries[vid_mapping_table->num_entries - 1].vid_2bit;
+		return 0;
 	}
 }