Don't cast SIZE_T_MAX to off_t.
I focused so much on the 32-bits case where we have to cast SIZE_T_MAX up in size, that I forgot about the 64-bits case, where off_t and size_t are equal in size. Simply cast both numbers to uintmax_t, as we can assume st_size is never negative. Reported by: cperciva
This commit is contained in:
parent
c435dafb84
commit
d2ea3bed52
@ -134,7 +134,7 @@ main(int argc, char *argv[])
|
||||
do {
|
||||
if ((fd = open(file, O_RDONLY, 0)) < 0 || fstat(fd, &sb))
|
||||
err(2, "%s", file);
|
||||
if (sb.st_size > (off_t)SIZE_T_MAX)
|
||||
if ((uintmax_t)sb.st_size > (uintmax_t)SIZE_T_MAX)
|
||||
errx(2, "%s: %s", file, strerror(EFBIG));
|
||||
if (sb.st_size == 0) {
|
||||
close(fd);
|
||||
|
Loading…
Reference in New Issue
Block a user