From patchwork Wed Jul 11 16:00:44 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 942588 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="iv5GGgA8"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41QkLs0wqFz9rxs for ; Thu, 12 Jul 2018 02:00:53 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732516AbeGKQFu (ORCPT ); Wed, 11 Jul 2018 12:05:50 -0400 Received: from mail-qt0-f193.google.com ([209.85.216.193]:44158 "EHLO mail-qt0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726429AbeGKQFu (ORCPT ); Wed, 11 Jul 2018 12:05:50 -0400 Received: by mail-qt0-f193.google.com with SMTP id b15-v6so21494601qtp.11 for ; Wed, 11 Jul 2018 09:00:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=IgOSksXxBPYog1EVE7DKlFgQvxZucWYpcG+GCZ0UgxI=; b=iv5GGgA89oFjmmr/QR2+dgnaA1MgUj7cqQGYYFoF/NyguN6gGUD5p3zTagEjWf5vEU y+gIPyax/gkfmTQDpUf8Azw526E/fnccQbHqWYV99GCNP/nu1fw7cfU81xM6R9lvkVlD HT23zGidX9xO3BmBzSx32zXVaOGs89q7P/hEcDxTFs/BFKBGtEESYzzdyjT+aL1iKU5U LWXh3NgwZGco0lKVTK6e+mp+5RH14JsAK2m6HNMvYmpNcdO+bphJhO2kWe2DPAGLqn+R CU16SRiHH6ABOywLnntfuCs9Zy4p+tI+dbKNssbxAtieNxfyxxOJxWP6GBuFPiz7stjD y+6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=IgOSksXxBPYog1EVE7DKlFgQvxZucWYpcG+GCZ0UgxI=; b=j+COYLT2zehF9tPmJr+i51URy5QuvfDm85K20rrL/HCie8fZkDosPg7UEYTDNr+tzB aEaIdW3aaaYSVPrt+I3g1oLP8alY8B3DoIUk38/vjNWL/DPaU0fEPD9Rey1/gKcDm/wj aAafWhg7gHwYvON8WhzUJfaohTyKP2p5stWQE+NoOrrf3Y4WUPyUJe/xXxFuImeq+rPA 97SDqIC/CpsIaolP+UiePIrEKR7jCqJp3ZcOS3DBVn2bXK2k3RlcWFcF27047WzWBRmj jyRkGZSDBRc555F+m/LyQgP+TC0FioUQsVG428wBr5OGDlvTOR5FbI3mhOHfjIJbdEB7 nrEQ== X-Gm-Message-State: APt69E30GP69Zl+XGsBotsacVTOqLoliic6dMRJ773yPi89LgUS16OcA rdPFmjW3f4IAmQeyjfK+3vUOzUcy X-Google-Smtp-Source: AAOMgpfbCDYaGSiax+E85gh50zDh2/1Vijk14qY/KVXjT2tz1jSVMnSKdEAsD4rqy3bRcfKyU80oyw== X-Received: by 2002:aed:3607:: with SMTP id e7-v6mr28014623qtb.385.1531324849687; Wed, 11 Jul 2018 09:00:49 -0700 (PDT) Received: from willemb1.nyc.corp.google.com ([2620:0:1003:315:3fa1:a34c:1128:1d39]) by smtp.gmail.com with ESMTPSA id s64-v6sm8615694qkc.70.2018.07.11.09.00.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Jul 2018 09:00:48 -0700 (PDT) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: davem@davemloft.net, Willem de Bruijn Subject: [PATCH net] nsh: set mac len based on inner packet Date: Wed, 11 Jul 2018 12:00:44 -0400 Message-Id: <20180711160046.198091-1-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.18.0.203.gfac676dfb9-goog Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Willem de Bruijn When pulling the NSH header in nsh_gso_segment, set the mac length based on the encapsulated packet type. skb_reset_mac_len computes an offset to the network header, which here still points to the outer packet: > skb_reset_network_header(skb); > [...] > __skb_pull(skb, nsh_len); > skb_reset_mac_header(skb); // now mac hdr starts nsh_len == 8B after net hdr > skb_reset_mac_len(skb); // mac len = net hdr - mac hdr == (u16) -8 == 65528 > [..] > skb_mac_gso_segment(skb, ..) Link: http://lkml.kernel.org/r/CAF=yD-KeAcTSOn4AxirAxL8m7QAS8GBBe1w09eziYwvPbbUeYA@mail.gmail.com Reported-by: syzbot+7b9ed9872dab8c32305d@syzkaller.appspotmail.com Fixes: c411ed854584 ("nsh: add GSO support") Signed-off-by: Willem de Bruijn Acked-by: Jiri Benc --- net/nsh/nsh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/nsh/nsh.c b/net/nsh/nsh.c index 9696ef96b719..1a30e165eeb4 100644 --- a/net/nsh/nsh.c +++ b/net/nsh/nsh.c @@ -104,7 +104,7 @@ static struct sk_buff *nsh_gso_segment(struct sk_buff *skb, __skb_pull(skb, nsh_len); skb_reset_mac_header(skb); - skb_reset_mac_len(skb); + skb->mac_len = proto == htons(ETH_P_TEB) ? ETH_HLEN : 0; skb->protocol = proto; features &= NETIF_F_SG;