Date: Sun, 18 Mar 2012 19:32:04 -0700 From: Tim Kientzle <tim@kientzle.com> To: Jason Hellenthal <jhellenthal@dataix.net> Cc: svn-src-stable@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Eitan Adler <eadler@FreeBSD.org>, svn-src-stable-8@FreeBSD.org Subject: Re: svn commit: r233147 - stable/8/lib/libc/string Message-ID: <264991E4-B083-4E61-9337-E5882DED66C3@kientzle.com> In-Reply-To: <20120319021724.GC13456@DataIX.net> References: <201203190127.q2J1RtgB044557@svn.freebsd.org> <20120319015203.GB13456@DataIX.net> <CAF6rxgkhiznBRU04%2Bc%2BDPdBj9Omg03SqeSd9-0Ct-FfxAVm95g@mail.gmail.com> <20120319021724.GC13456@DataIX.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 18, 2012, at 7:17 PM, Jason Hellenthal wrote: >=20 >=20 > On Sun, Mar 18, 2012 at 09:58:12PM -0400, Eitan Adler wrote: >> On Sun, Mar 18, 2012 at 9:52 PM, Jason Hellenthal >> <jhellenthal@dataix.net> wrote: >>>=20 >>>=20 >>> On Mon, Mar 19, 2012 at 01:27:55AM +0000, Eitan Adler wrote: >>>> Author: eadler >>>> Date: Mon Mar 19 01:27:55 2012 >>>> New Revision: 233147 >>>> URL: http://svn.freebsd.org/changeset/base/233147 >>>>=20 >>>> Log: >>>> MFC r232503: >>>> POSIX mandates that swab do nothing when len < 0 >>>>=20 >>>> PR: 140690 >>>> Approved by: cperciva >>>>=20 >>>> Modified: stable/8/lib/libc/string/swab.c >>>> = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D >>>> --- stable/8/lib/libc/string/swab.c Mon Mar 19 01:27:30 2012 = (r233146) >>>> +++ stable/8/lib/libc/string/swab.c Mon Mar 19 01:27:55 2012 = (r233147) >>>> @@ -45,6 +45,8 @@ swab(const void * __restrict from, void >>>> int n; >>>> char *fp, *tp; >>>>=20 >>>> + if (len <=3D 0) >>>> + return; >>>=20 >>> Does this not test to see if it is also equal to 0(zero) ? >>>=20 >>> If I understand the above statement "POSIX mandates that swab do = nothing >>> when len < 0" then the above code should be exactly that ... and not >>> testing whether it is equal to zero... >>=20 >> If the code doesn't check for len <=3D 0 then it will do something. >>=20 >=20 > To my understanding of the specification it should only return if len = is > negative... 0 is not a negative number. =46rom POSIX: > The swab() function shall copy nbytes bytes=85 This implies that it does nothing when the argument is zero. The check for <=3D 0 is a performance optimization; otherwise the code will do nothing in a more expensive fashion. > If nbytes is negative, swab() does nothing. This states that it does nothing when the argument is less than zero. So the change is correct; it covers both cases. Tim
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?264991E4-B083-4E61-9337-E5882DED66C3>