lkml.org 
[lkml]   [2020]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 75/95] xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
    Date
    From: Xin Long <lucien.xin@gmail.com>

    commit afcaf61be9d1dbdee5ec186d1dcc67b6b692180f upstream.

    For beet mode, when it's ipv6 inner address with nexthdrs set,
    the packet format might be:

    ----------------------------------------------------
    | outer | | dest | | | ESP | ESP |
    | IP hdr | ESP | opts.| TCP | Data | Trailer | ICV |
    ----------------------------------------------------

    The nexthdr from ESP could be NEXTHDR_HOP(0), so it should
    continue processing the packet when nexthdr returns 0 in
    xfrm_input(). Otherwise, when ipv6 nexthdr is set, the
    packet will be dropped.

    I don't see any error cases that nexthdr may return 0. So
    fix it by removing the check for nexthdr == 0.

    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    net/xfrm/xfrm_input.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/net/xfrm/xfrm_input.c
    +++ b/net/xfrm/xfrm_input.c
    @@ -407,7 +407,7 @@ resume:
    dev_put(skb->dev);

    spin_lock(&x->lock);
    - if (nexthdr <= 0) {
    + if (nexthdr < 0) {
    if (nexthdr == -EBADMSG) {
    xfrm_audit_state_icvfail(x, skb,
    x->type->proto);

    \
     
     \ /
      Last update: 2020-06-01 20:06    [W:2.881 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site