DF-1738 / fix.diff
diff --git a/sys/dev/disk/nata/ata-lowlevel.c b/sys/dev/disk/nata/ata-lowlevel.c --- a/sys/dev/disk/nata/ata-lowlevel.c +++ b/sys/dev/disk/nata/ata-lowlevel.c @@ -779,6 +779,10 @@ heads = atadev->param.heads; sectors = atadev->param.sectors; } + if (sectors == 0 || heads == 0) { + request->result = EINVAL; + return; + } ATA_IDX_OUTB(ch, ATA_SECTOR, (request->u.ata.lba % sectors)+1); ATA_IDX_OUTB(ch, ATA_CYL_LSB, |