mirror of
https://github.com/opnsense/src.git
synced 2026-06-10 09:11:07 -04:00
Return an error if the drive reports heads/sectors that do not make sense.
This fixes a divide by zero in fdisk(8) Reviewed by: phk
This commit is contained in:
parent
9e3bf94fd7
commit
02fcfac0ad
1 changed files with 8 additions and 0 deletions
|
|
@ -245,15 +245,23 @@ g_dev_ioctl(dev_t dev, u_long cmd, caddr_t data, int fflag, struct thread *td)
|
|||
switch (cmd) {
|
||||
case DIOCGSECTORSIZE:
|
||||
error = g_io_getattr("GEOM::sectorsize", cp, &i, data);
|
||||
if (error == 0 && *(u_int *)data == 0)
|
||||
error = ENOENT;
|
||||
break;
|
||||
case DIOCGMEDIASIZE:
|
||||
error = g_io_getattr("GEOM::mediasize", cp, &i, data);
|
||||
if (error == 0 && *(u_int *)data == 0)
|
||||
error = ENOENT;
|
||||
break;
|
||||
case DIOCGFWSECTORS:
|
||||
error = g_io_getattr("GEOM::fwsectors", cp, &i, data);
|
||||
if (error == 0 && *(u_int *)data == 0)
|
||||
error = ENOENT;
|
||||
break;
|
||||
case DIOCGFWHEADS:
|
||||
error = g_io_getattr("GEOM::fwheads", cp, &i, data);
|
||||
if (error == 0 && *(u_int *)data == 0)
|
||||
error = ENOENT;
|
||||
break;
|
||||
case DIOCGFRONTSTUFF:
|
||||
error = g_io_getattr("GEOM::frontstuff", cp, &i, data);
|
||||
|
|
|
|||
Loading…
Reference in a new issue