Date: Sun, 16 Oct 2011 19:15:25 +0000 (UTC) From: Ed Schouten <ed@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r226444 - head/usr.bin/look Message-ID: <201110161915.p9GJFPpo075845@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ed Date: Sun Oct 16 19:15:25 2011 New Revision: 226444 URL: http://svn.freebsd.org/changeset/base/226444 Log: 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 Modified: head/usr.bin/look/look.c Modified: head/usr.bin/look/look.c ============================================================================== --- head/usr.bin/look/look.c Sun Oct 16 17:59:28 2011 (r226443) +++ head/usr.bin/look/look.c Sun Oct 16 19:15:25 2011 (r226444) @@ -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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110161915.p9GJFPpo075845>