28 Jun, 2016

1 commit


04 Mar, 2016

1 commit

  • When ipv6_find_hdr is used to find a fragment header
    (caller specifies target NEXTHDR_FRAGMENT) we erronously return
    -ENOENT for all fragments with nonzero offset.

    Before commit 9195bb8e381d, when target was specified, we did not
    enter the exthdr walk loop as nexthdr == target so this used to work.

    Now we do (so we can skip empty route headers). When we then stumble upon
    a frag with nonzero frag_off we must return -ENOENT ("header not found")
    only if the caller did not specifically request NEXTHDR_FRAGMENT.

    This allows nfables exthdr expression to match ipv6 fragments, e.g. via

    nft add rule ip6 filter input frag frag-off gt 0

    Fixes: 9195bb8e381d ("ipv6: improve ipv6_find_hdr() to skip empty routing headers")
    Signed-off-by: Florian Westphal
    Signed-off-by: David S. Miller

    Florian Westphal
     

01 Apr, 2015

1 commit

  • The ipv6 code uses a mixture of coding styles. In some instances check for NULL
    pointer is done as x == NULL and sometimes as !x. !x is preferred according to
    checkpatch and this patch makes the code consistent by adopting the latter
    form.

    No changes detected by objdiff.

    Signed-off-by: Ian Morris
    Signed-off-by: David S. Miller

    Ian Morris
     

28 Feb, 2014

1 commit

  • The commit 9195bb8e381d81d5a315f911904cdf0cfcc919b8 ("ipv6: improve
    ipv6_find_hdr() to skip empty routing headers") broke ipv6_find_hdr().

    When a target is specified like IPPROTO_ICMPV6 ipv6_find_hdr()
    returns -ENOENT when it's found, not the header as expected.

    A part of IPVS is broken and possible also nft_exthdr_eval().
    When target is -1 which it is most cases, it works.

    This patch exits the do while loop if the specific header is found
    so the nexthdr could be returned as expected.

    Reported-by: Art -kwaak- van Breemen
    Signed-off-by: Hans Schillstrom
    CC:Ansis Atteka
    Signed-off-by: David S. Miller

    Hans Schillstrom
     

29 May, 2013

1 commit

  • This corrects an regression introduced by "net: Use 16bits for *_headers
    fields of struct skbuff" when NET_SKBUFF_DATA_USES_OFFSET is not set. In
    that case skb->tail will be a pointer whereas skb->transport_header
    will be an offset from head. This is corrected by using wrappers that
    ensure that comparisons and calculations are always made using pointers.

    Signed-off-by: Simon Horman
    Signed-off-by: David S. Miller

    Simon Horman
     

01 Dec, 2012

1 commit

  • Conflicts:
    net/ipv6/exthdrs_core.c

    Jesse Gross says:

    ====================
    This series of improvements for 3.8/net-next contains four components:
    * Support for modifying IPv6 headers
    * Support for matching and setting skb->mark for better integration with
    things like iptables
    * Ability to recognize the EtherType for RARP packets
    * Two small performance enhancements

    The movement of ipv6_find_hdr() into exthdrs_core.c causes two small merge
    conflicts. I left it as is but can do the merge if you want. The conflicts
    are:
    * ipv6_find_hdr() and ipv6_find_tlv() were both moved to the bottom of
    exthdrs_core.c. Both should stay.
    * A new use of ipv6_find_hdr() was added to net/netfilter/ipvs/ip_vs_core.c
    after this patch. The IPVS user has two instances of the old constant
    name IP6T_FH_F_FRAG which has been renamed to IP6_FH_F_FRAG.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

16 Nov, 2012

1 commit


13 Nov, 2012

1 commit


10 Nov, 2012

1 commit


19 May, 2012

1 commit


02 Apr, 2012

1 commit


04 Dec, 2011

1 commit

  • While parsing through IPv6 extension headers, fragment headers are
    skipped making them invisible to the caller. This reports the
    fragment offset of the last header in order to make it possible to
    determine whether the packet is fragmented and, if so whether it is
    a first or last fragment.

    Signed-off-by: Jesse Gross

    Jesse Gross
     

01 Nov, 2011

1 commit


24 Sep, 2010

1 commit


11 Feb, 2007

1 commit


03 Dec, 2006

1 commit


25 Apr, 2005

1 commit

  • The SELinux hooks invoke ipv6_skip_exthdr() with an incorrect
    length final argument. However, the length argument turns out
    to be superfluous.

    I was just reading ipv6_skip_exthdr and it occured to me that we can
    get rid of len altogether. The only place where len is used is to
    check whether the skb has two bytes for ipv6_opt_hdr. This check
    is done by skb_header_pointer/skb_copy_bits anyway.

    Now it might appear that we've made the code slower by deferring
    the check to skb_copy_bits. However, this check should not trigger
    in the common case so this is OK.

    Signed-off-by: Herbert Xu
    Signed-off-by: David S. Miller

    Herbert Xu
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds