Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eab453c6 authored by San Mehat's avatar San Mehat
Browse files

toolbox: newfs_msdos: Exit on write failure, and handle bogus geometry from the kernel



Signed-off-by: default avatarSan Mehat <san@google.com>
parent 1851d809
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -745,8 +745,10 @@ newfs_msdos_main(int argc, char *argv[])
	    }
	    if ((n = write(fd, img, bpb.bps)) == -1)
		err(1, "%s", fname);
	    if ((unsigned)n != bpb.bps)
	    if ((unsigned)n != bpb.bps) {
		errx(1, "%s: can't write sector %u", fname, lsn);
                exit(1);
            }
	}
    }
    return 0;
@@ -828,6 +830,16 @@ getdiskinfo(int fd, const char *fname, const char *dtype, __unused int oflag,
        geom.sectors = 63;
    }

    if (!geom.heads) {
        printf("Bogus heads from kernel - setting sane value\n");
        geom.heads = 64;
    }

    if (!geom.sectors) {
        printf("Bogus sectors from kernel - setting sane value\n");
        geom.sectors = 63;
    }

    bpb->spt = geom.sectors;
    ckgeom(fname, bpb->spt, "sectors/track");