[lkml]   [2010]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    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 <>

    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 23715/178 to

    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 <>
    Acked-by: Eric Dumazet <>
    Signed-off-by: David S. Miller <>
    Signed-off-by: Greg Kroah-Hartman <>

    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
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2010-05-25 01:19    [from the cache]
    ©2003-2014 Jasper Spaans. hosted at Digital Ocean