svn commit: r316826 - head/sys/netpfil/ipfw/nat64

Andrey V. Elsukov ae at FreeBSD.org
Fri Apr 14 11:58:42 UTC 2017


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.
  
  Reported by:	PVS-Studio
  MFC after:	1 week

Modified:
  head/sys/netpfil/ipfw/nat64/nat64stl.c

Modified: head/sys/netpfil/ipfw/nat64/nat64stl.c
==============================================================================
--- head/sys/netpfil/ipfw/nat64/nat64stl.c	Fri Apr 14 11:41:09 2017	(r316825)
+++ head/sys/netpfil/ipfw/nat64/nat64stl.c	Fri Apr 14 11:58:41 2017	(r316826)
@@ -75,7 +75,8 @@ nat64stl_log(struct pfloghdr *plog, stru
 	plog->action = PF_NAT;
 	plog->dir = PF_IN;
 	plog->rulenr = htonl(kidx);
-	plog->subrulenr = htonl(++pktid);
+	pktid++;
+	plog->subrulenr = htonl(pktid);
 	plog->ruleset[0] = '\0';
 	strlcpy(plog->ifname, "NAT64STL", sizeof(plog->ifname));
 	ipfw_bpf_mtap2(plog, PFLOG_HDRLEN, m);


More information about the svn-src-all mailing list