Date: Sat, 4 Aug 2001 14:44:39 -0400 From: Mike Barcroft <mike@FreeBSD.org> To: Bruce Evans <bde@zeta.org.au> Cc: audit@FreeBSD.org Subject: Re: cmp(1) warns patch Message-ID: <20010804144439.A8069@coffee.q9media.com> In-Reply-To: <20010804124551.S16377-100000@besplex.bde.org>; from bde@zeta.org.au on Sat, Aug 04, 2001 at 12:59:56PM %2B1000 References: <20010803213745.A4390@coffee.q9media.com> <20010804124551.S16377-100000@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Aug 04, 2001 at 12:59:56PM +1000, Bruce Evans wrote: > On Fri, 3 Aug 2001, Mike Barcroft wrote: > > ... > > Index: cmp/regular.c > > =================================================================== > > RCS file: /home/ncvs/src/usr.bin/cmp/regular.c,v > > retrieving revision 1.10 > > diff -u -r1.10 regular.c > > --- cmp/regular.c 2000/06/20 20:28:40 1.10 > > +++ cmp/regular.c 2001/08/04 01:02:33 > > ... > > @@ -81,7 +81,7 @@ > > off2 = ROUNDPAGE(skip2); > > > > length = MIN(len1, len2); > > - if (length > SIZE_T_MAX) > > + if (length > (off_t)SIZE_T_MAX) > > This is broken on many machines, including alphas. On alphas, > (off_t)SIZE_MAX overflows to -1, so `length' is always larger and the > pessimized cspecial() method is always used. > > Casting the left hand size to the type of the right hand side would be > even more broken. > > Without any casts, `length' and SIZE_T_MAX were promoted to a common > type and there was no problem unless length < 0 (which can't happen). I guess I should have looked at the types a little more closely. Do you have any suggestions for overcoming the comparison between signed and unsigned warning on alpha? Best regards, Mike Barcroft To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010804144439.A8069>