DragonFlyBSD Kernel Audit
DF-0882 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/vfs/udf/udf_vfsops.c b/sys/vfs/udf/udf_vfsops.c
--- a/sys/vfs/udf/udf_vfsops.c
+++ b/sys/vfs/udf/udf_vfsops.c
@@ -632,7 +632,7 @@
 	int ptype, psize, error;
 	unsigned int i;
 
-	for (i = 0; i < lvd->n_pm; i++) {
+	for (i = 0; i < lvd->n_pm && i * UDF_PMAP_SIZE + UDF_PMAP_SIZE <= sizeof(*lvd); i++) {
 		pmap = (union udf_pmap *)&lvd->maps[i * UDF_PMAP_SIZE];
 		ptype = pmap->data[0];
 		psize = pmap->data[1];