Fix expected BLKGETSIZE64 ioctl result type to 64 bit am: ee18a6bd9a am: 8ef9d92197 am: 43cd442c7c am: 562496c10e
Original change: https://android-review.googlesource.com/c/platform/external/newfs_msdos/+/1588314
MUST ONLY BE SUBMITTED BY AUTOMERGER
Change-Id: I5726b8ff1cf3c06e92846bec05e7aa7fc4d824de
diff --git a/mkfs_msdos.c b/mkfs_msdos.c
index 08c435b..946096f 100644
--- a/mkfs_msdos.c
+++ b/mkfs_msdos.c
@@ -936,14 +936,14 @@
if (ckgeom(fname, bpb->bpbBytesPerSec, "bytes/sector") == -1) return -1;
- u_long device_size;
+ u_int64_t device_size;
if (ioctl(fd, BLKGETSIZE64, &device_size)) {
err(1, "ioctl(BLKGETSIZE64) failed");
}
- u_long sectors = device_size/bpb->bpbBytesPerSec;
- if (sectors > UINT32_MAX) {
- errx(1, "too many sectors: %lu (%lu byte device, %u bytes/sector)",
+ u_int64_t sectors = device_size/bpb->bpbBytesPerSec;
+ if (sectors > UINT_MAX) {
+ errx(1, "too many sectors: %"PRIu64" (%"PRIu64" byte device, %u bytes/sector)",
sectors, device_size, bpb->bpbBytesPerSec);
}
bpb->bpbHugeSectors = sectors;