[Bug 285922] recoverdisk(1) Floating point exception
Date: Sun, 06 Apr 2025 19:27:04 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=285922 Bug ID: 285922 Summary: recoverdisk(1) Floating point exception Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: kwhite.uottawa@gmail.com I get a "Floating point exception" when running recoverdisk(1) on a disk that does not have a stripesize. e.g.: # recoverdisk /dev/da0 Floating point exception # diskinfo -v /dev/da0 /dev/da0 512 # sectorsize 62914560000 # mediasize in bytes (59G) 122880000 # mediasize in sectors 0 # stripesize 0 # stripeoffset 7648 # Cylinders according to firmware. 255 # Heads according to firmware. 63 # Sectors according to firmware. Generic Flash Disk # Disk descr. 16D4D655 # Disk ident. umass-sim0 # Attachment No # TRIM/UNMAP support Unknown # Rotation rate in RPM Not_Zoned # Zone Mode Possible fix, check that stripesize is greater than zero before using it as sectorsize: # git -C /usr/src diff sbin/recoverdisk diff --git a/sbin/recoverdisk/recoverdisk.c b/sbin/recoverdisk/recoverdisk.c index 446266c36d50..4b106d571f2d 100644 --- a/sbin/recoverdisk/recoverdisk.c +++ b/sbin/recoverdisk/recoverdisk.c @@ -482,7 +482,7 @@ main(int argc, char * const argv[]) err(1, "DIOCGSECTORSIZE failed"); error = ioctl(fdr, DIOCGSTRIPESIZE, &stripesize); - if (error == 0 && stripesize < sectorsize) + if (error == 0 && stripesize > 0 && stripesize < sectorsize) sectorsize = stripesize; minsize = sectorsize; -- You are receiving this mail because: You are the assignee for the bug.