DragonFlyBSD Kernel Audit
DF-2057 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/disk/dm/dm_pdev.c b/sys/dev/disk/dm/dm_pdev.c
--- a/sys/dev/disk/dm/dm_pdev.c
+++ b/sys/dev/disk/dm/dm_pdev.c
@@ -98,13 +98,15 @@
  * This function adjusts the dumping offset that is passed to the next
  * dev_ddump() so it is correct for that underlying device.
  */
-off_t
-dm_pdev_correct_dump_offset(dm_pdev_t *pdev, off_t offset)
-{
-	off_t noffset;
-
-	noffset = pdev->pdev_pinfo.reserved_blocks +
-	    pdev->pdev_pinfo.media_offset / pdev->pdev_pinfo.media_blksize;
+off_t
+dm_pdev_correct_dump_offset(dm_pdev_t *pdev, off_t offset)
+{
+	off_t noffset;
+
+	if (pdev->pdev_pinfo.media_blksize == 0)
+		return offset;
+	noffset = pdev->pdev_pinfo.reserved_blocks +
+	    pdev->pdev_pinfo.media_offset / pdev->pdev_pinfo.media_blksize;
 	noffset *= DEV_BSIZE;
 	noffset += offset;