lkml.org 
[lkml]   [2010]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[01/34] ipv4: udp: fix short packet and bad checksum logging
    2.6.34-stable review patch.  If anyone has any objections, please let us know.

    ------------------
    From: Bjørn Mork <bjorn@mork.no>

    commit ccc2d97cb7c798e785c9f198de243e2b59f7073b upstream.

    commit 2783ef23 moved the initialisation of saddr and daddr after
    pskb_may_pull() to avoid a potential data corruption. Unfortunately
    also placing it after the short packet and bad checksum error paths,
    where these variables are used for logging. The result is bogus
    output like

    [92238.389505] UDP: short packet: From 2.0.0.0:65535 23715/178 to 0.0.0.0:65535

    Moving the saddr and daddr initialisation above the error paths, while still
    keeping it after the pskb_may_pull() to keep the fix from commit 2783ef23.

    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    net/ipv4/udp.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)
    --- a/net/ipv4/udp.c
    +++ b/net/ipv4/udp.c
    @@ -1292,6 +1292,9 @@ int __udp4_lib_rcv(struct sk_buff *skb,

    uh = udp_hdr(skb);
    ulen = ntohs(uh->len);
    + saddr = ip_hdr(skb)->saddr;
    + daddr = ip_hdr(skb)->daddr;
    +
    if (ulen > skb->len)
    goto short_packet;

    @@ -1305,9 +1308,6 @@ int __udp4_lib_rcv(struct sk_buff *skb,
    if (udp4_csum_init(skb, uh, proto))
    goto csum_error;

    - saddr = ip_hdr(skb)->saddr;
    - daddr = ip_hdr(skb)->daddr;
    -
    if (rt->rt_flags & (RTCF_BROADCAST|RTCF_MULTICAST))
    return __udp4_lib_mcast_deliver(net, skb, uh,
    saddr, daddr, udptable);

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2010-05-25 01:19    [from the cache]
    ©2003-2014 Jasper Spaans. Advertise on this site