Author: andre
Date: Wed Oct 12 11:34:14 2011
New Revision: 226299
URL: http://svn.freebsd.org/changeset/base/226299

Log:
  MFC r226105:
    Add back the IP header length to the total packet length field on
    raw IP sockets.  It was deducted in ip_input() in preparation for
    protocols interested only in the payload.
  
    On raw sockets the IP header should be delivered as it at came in
    from the network except for the byte order swaps in some fields.
  
  Approved by:  re (kib)

Modified:
  stable/9/sys/netinet/raw_ip.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/amd64/include/xen/   (props changed)
  stable/9/sys/boot/   (props changed)
  stable/9/sys/boot/i386/efi/   (props changed)
  stable/9/sys/boot/ia64/efi/   (props changed)
  stable/9/sys/boot/ia64/ski/   (props changed)
  stable/9/sys/boot/powerpc/boot1.chrp/   (props changed)
  stable/9/sys/boot/powerpc/ofw/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/contrib/dev/acpica/   (props changed)
  stable/9/sys/contrib/octeon-sdk/   (props changed)
  stable/9/sys/contrib/pf/   (props changed)
  stable/9/sys/contrib/x86emu/   (props changed)

Modified: stable/9/sys/netinet/raw_ip.c
==============================================================================
--- stable/9/sys/netinet/raw_ip.c       Wed Oct 12 11:08:09 2011        
(r226298)
+++ stable/9/sys/netinet/raw_ip.c       Wed Oct 12 11:34:14 2011        
(r226299)
@@ -289,6 +289,13 @@ rip_input(struct mbuf *m, int off)
        last = NULL;
 
        ifp = m->m_pkthdr.rcvif;
+       /*
+        * Add back the IP header length which was
+        * removed by ip_input().  Raw sockets do
+        * not modify the packet except for some
+        * byte order swaps.
+        */
+       ip->ip_len += off;
 
        hash = INP_PCBHASH_RAW(proto, ip->ip_src.s_addr,
            ip->ip_dst.s_addr, V_ripcbinfo.ipi_hashmask);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to