⬢ DragonFlyBSD Kernel Audit
DF-4256 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/agp/intel-gtt.c b/sys/dev/agp/intel-gtt.c
index 1111111..2222222 100644
--- a/sys/dev/agp/intel-gtt.c
+++ b/sys/dev/agp/intel-gtt.c
@@ -694,6 +694,12 @@ agp_i915_get_stolen_size(device_t dev)
 
 	gtt_size += 4;
 	sc->stolen_size = stolen * 1024;
+	if (stolen < gtt_size) {
+		device_printf(dev, "stolen memory (%dk) smaller than the "
+		    "GTT (%dk) - bad firmware configuration\n", stolen, gtt_size);
+		sc->stolen = 0;
+		return (0);
+	}
 	sc->stolen = (stolen - gtt_size) * 1024 / 4096;
 
 	return (0);