Date: Fri, 14 Apr 2017 09:15:35 -0700 From: Conrad Meyer <cem@freebsd.org> To: Ian Lepore <ian@freebsd.org> Cc: "Andrey V. Elsukov" <ae@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r316826 - head/sys/netpfil/ipfw/nat64 Message-ID: <CAG6CVpWxayuKKTUYdRa2sn1fWufBMvHko1DVj1ekdHqcVYL9kw@mail.gmail.com> In-Reply-To: <1492185206.73883.126.camel@freebsd.org> References: <201704141158.v3EBwfLm003147@repo.freebsd.org> <CAG6CVpVJ%2BJ_dy%2BNV=SFXSN6O7OOBQOAW6gZvRBJDsQNxNyHy2A@mail.gmail.com> <1492185206.73883.126.camel@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Ian, I don't know about "guaranteed," but it certainly looks like the htonl/bswap macros intend to avoid double-evaluating macro parameters. On Fri, Apr 14, 2017 at 8:53 AM, Ian Lepore <ian@freebsd.org> wrote: > On Fri, 2017-04-14 at 08:32 -0700, Conrad Meyer wrote: >> On Fri, Apr 14, 2017 at 4:58 AM, Andrey V. Elsukov <ae@freebsd.org> >> wrote: >> > >> > Author: ae >> > Date: Fri Apr 14 11:58:41 2017 >> > New Revision: 316826 >> > URL: https://svnweb.freebsd.org/changeset/base/316826 >> > >> > Log: >> > Avoid undefined behavior. >> > >> > The 'pktid' variable is modified while being used twice between >> > sequence points, probably due to htonl() is macro. >> FYI =E2=80=94 there are a ton of similar reports in sys/rpc due to the X= DR >> macros (which read a network value off a pointer and increment it). >> See e.g., IXDR_GET_UINT32() macro. >> >> Best, >> Conrad > > Aren't they all false positives, since the macros involved are g'teed > not to evaluate their arguments more than once as written (because > __builtin_constant_p always evaluates at compile time)? Do we really > want to churn our source code to eliminate false positives from some > tool that appears to still be in its alpha-testing state? > > -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpWxayuKKTUYdRa2sn1fWufBMvHko1DVj1ekdHqcVYL9kw>