When using libdisk functions with files, not real or partfs(8) disks, chs fields in the Disk structure are not filled. Later on, partitiongeometry() will try to calculate the cylinders with disk->c = disk->secs / (disk->h*disk->s) which may result in a division by zero. This patch just checks for empty chs. . Reference: /n/sources/patch/applied/diskgeometry-nochs Date: Thu Nov 19 12:32:56 CET 2009 Signed-off-by: iru.muzgo@gmail.com --- /sys/src/libdisk/disk.c Thu Nov 19 12:25:55 2009 +++ /sys/src/libdisk/disk.c Thu Nov 19 12:25:49 2009 @@ -63,6 +63,9 @@ uchar buf[512]; Table *t; + if(disk->c == 0 || disk->h == 0 || disk->s == 0) + return -1; + t = (Table*)(buf + Toffset); /*