Skip site navigation (1)Skip section navigation (2)
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>