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);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to