From ce621f16687ce0706fc01a543d6db1c95ba0d66e Mon Sep 17 00:00:00 2001 From: Samanta Navarro Date: Fri, 13 Jan 2023 11:52:36 +0000 Subject: [PATCH] lib/blkdev: use off_t for max values The off_t datatype is signed. Use it for high and low boundaries as well to support also very large block devices close to its limits. Signed-off-by: Samanta Navarro --- lib/blkdev.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/blkdev.c b/lib/blkdev.c index 757f3e818b..b10da99a24 100644 --- a/lib/blkdev.c +++ b/lib/blkdev.c @@ -58,25 +58,25 @@ int is_blkdev(int fd) off_t blkdev_find_size (int fd) { - uintmax_t high, low = 0; + off_t high, low = 0; for (high = 1024; blkdev_valid_offset (fd, high); ) { - if (high == UINTMAX_MAX) { + if (high == SINT_MAX(off_t)) { errno = EFBIG; return -1; } low = high; - if (high >= UINTMAX_MAX/2) - high = UINTMAX_MAX; + if (high >= SINT_MAX(off_t)/2) + high = SINT_MAX(off_t); else high *= 2; } while (low < high - 1) { - uintmax_t mid = (low + high) / 2; + off_t mid = (low + high) / 2; if (blkdev_valid_offset (fd, mid)) low = mid; -- 2.47.2