Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b5c15fc004ac83b7ad280acbe0fd4bbed7e2c8d4
Commit:     b5c15fc004ac83b7ad280acbe0fd4bbed7e2c8d4
Parent:     073a371987f9a9806a85329eed51dca1fc52a7a0
Author:     Herbert Xu <[EMAIL PROTECTED]>
AuthorDate: Thu Feb 14 23:49:37 2008 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Thu Feb 14 23:49:37 2008 -0800

    [IPV6]: Fix reversed local_df test in ip6_fragment
    
    I managed to reverse the local_df test when forward-porting this
    patch so it actually makes things worse by never fragmenting at
    all.
    
    Thanks to David Stevens for testing and reporting this bug.
    
    Bill Fink pointed out that the local_df setting is also the wrong
    way around.
    
    Signed-off-by: Herbert Xu <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/ip6_output.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 4e9a2fe..8b67ca0 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -621,7 +621,7 @@ static int ip6_fragment(struct sk_buff *skb, int 
(*output)(struct sk_buff *))
         * or if the skb it not generated by a local socket.  (This last
         * check should be redundant, but it's free.)
         */
-       if (skb->local_df) {
+       if (!skb->local_df) {
                skb->dev = skb->dst->dev;
                icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev);
                IP6_INC_STATS(ip6_dst_idev(skb->dst), IPSTATS_MIB_FRAGFAILS);
@@ -1421,7 +1421,7 @@ int ip6_push_pending_frames(struct sock *sk)
        }
 
        /* Allow local fragmentation. */
-       if (np->pmtudisc >= IPV6_PMTUDISC_DO)
+       if (np->pmtudisc < IPV6_PMTUDISC_DO)
                skb->local_df = 1;
 
        ipv6_addr_copy(final_dst, &fl->fl6_dst);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to