DF-0882 / fix.diff
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]; |