• P
    netfilter: possible unaligned packet header in ip_route_me_harder · 5e2afba4
    Paul Guo 提交于
    This patch tries to fix the following issue in netfilter:
    In ip_route_me_harder(), we invoke pskb_expand_head() that
    rellocates new header with additional head room which can break
    the alignment of the original packet header.
    
    In one of my NAT test case, the NIC port for internal hosts is
    configured with vlan and the port for external hosts is with
    general configuration. If we ping an external "unknown" hosts from an
    internal host, an icmp packet will be sent. We find that in
    icmp_send()->...->ip_route_me_harder()->pskb_expand_head(), hh_len=18
    and current headroom (skb_headroom(skb)) of the packet is 16. After
    calling pskb_expand_head() the packet header becomes to be unaligned
    and then our system (arch/tile) panics immediately.
    Signed-off-by: NPaul Guo <ggang@tilera.com>
    Acked-by: NEric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
    5e2afba4
netfilter.c 6.2 KB