From: Simon Wunderlich <sw@simonwunderlich.de> To: davem@davemloft.net Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org, Sven Eckelmann <sven@narfation.org>, Simon Wunderlich <sw@simonwunderlich.de> Subject: [PATCH 2/3] batman-adv: Force mac header to start of data on xmit Date: Fri, 1 Feb 2019 12:14:11 +0100 [thread overview] Message-ID: <20190201111412.13807-3-sw@simonwunderlich.de> (raw) In-Reply-To: <20190201111412.13807-1-sw@simonwunderlich.de> From: Sven Eckelmann <sven@narfation.org> The caller of ndo_start_xmit may not already have called skb_reset_mac_header. The returned value of skb_mac_header/eth_hdr therefore can be in the wrong position and even outside the current skbuff. This for example happens when the user binds to the device using a PF_PACKET-SOCK_RAW with enabled qdisc-bypass: int opt = 4; setsockopt(sock, SOL_PACKET, PACKET_QDISC_BYPASS, &opt, sizeof(opt)); Since eth_hdr is used all over the codebase, the batadv_interface_tx function must always take care of resetting it. Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol") Reported-by: syzbot+9d7405c7faa390e60b4e@syzkaller.appspotmail.com Reported-by: syzbot+7d20bc3f1ddddc0f9079@syzkaller.appspotmail.com Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> --- net/batman-adv/soft-interface.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 5db5a0a4c959..b85ca809e509 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -221,6 +221,8 @@ static netdev_tx_t batadv_interface_tx(struct sk_buff *skb, netif_trans_update(soft_iface); vid = batadv_get_vid(skb, 0); + + skb_reset_mac_header(skb); ethhdr = eth_hdr(skb); switch (ntohs(ethhdr->h_proto)) { -- 2.11.0
WARNING: multiple messages have this Message-ID (diff)
From: Simon Wunderlich <sw@simonwunderlich.de> To: davem@davemloft.net Cc: netdev@vger.kernel.org, b.a.t.m.a.n@lists.open-mesh.org, Sven Eckelmann <sven@narfation.org>, Simon Wunderlich <sw@simonwunderlich.de> Subject: [B.A.T.M.A.N.] [PATCH 2/3] batman-adv: Force mac header to start of data on xmit Date: Fri, 1 Feb 2019 12:14:11 +0100 [thread overview] Message-ID: <20190201111412.13807-3-sw@simonwunderlich.de> (raw) In-Reply-To: <20190201111412.13807-1-sw@simonwunderlich.de> From: Sven Eckelmann <sven@narfation.org> The caller of ndo_start_xmit may not already have called skb_reset_mac_header. The returned value of skb_mac_header/eth_hdr therefore can be in the wrong position and even outside the current skbuff. This for example happens when the user binds to the device using a PF_PACKET-SOCK_RAW with enabled qdisc-bypass: int opt = 4; setsockopt(sock, SOL_PACKET, PACKET_QDISC_BYPASS, &opt, sizeof(opt)); Since eth_hdr is used all over the codebase, the batadv_interface_tx function must always take care of resetting it. Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol") Reported-by: syzbot+9d7405c7faa390e60b4e@syzkaller.appspotmail.com Reported-by: syzbot+7d20bc3f1ddddc0f9079@syzkaller.appspotmail.com Signed-off-by: Sven Eckelmann <sven@narfation.org> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de> --- net/batman-adv/soft-interface.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 5db5a0a4c959..b85ca809e509 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -221,6 +221,8 @@ static netdev_tx_t batadv_interface_tx(struct sk_buff *skb, netif_trans_update(soft_iface); vid = batadv_get_vid(skb, 0); + + skb_reset_mac_header(skb); ethhdr = eth_hdr(skb); switch (ntohs(ethhdr->h_proto)) { -- 2.11.0
next prev parent reply other threads:[~2019-02-01 11:22 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-02-01 11:14 [PATCH 0/3] pull request for net: batman-adv 2019-02-01 Simon Wunderlich 2019-02-01 11:14 ` [B.A.T.M.A.N.] " Simon Wunderlich 2019-02-01 11:14 ` [PATCH 1/3] batman-adv: Avoid WARN on net_device without parent in netns Simon Wunderlich 2019-02-01 11:14 ` [B.A.T.M.A.N.] " Simon Wunderlich 2019-02-01 11:14 ` Simon Wunderlich [this message] 2019-02-01 11:14 ` [B.A.T.M.A.N.] [PATCH 2/3] batman-adv: Force mac header to start of data on xmit Simon Wunderlich 2019-02-01 11:14 ` [PATCH 3/3] batman-adv: release station info tidstats Simon Wunderlich 2019-02-01 11:14 ` [B.A.T.M.A.N.] " Simon Wunderlich 2019-02-01 18:19 ` [PATCH 0/3] pull request for net: batman-adv 2019-02-01 David Miller 2019-02-01 18:19 ` [B.A.T.M.A.N.] " David Miller
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190201111412.13807-3-sw@simonwunderlich.de \ --to=sw@simonwunderlich.de \ --cc=b.a.t.m.a.n@lists.open-mesh.org \ --cc=davem@davemloft.net \ --cc=netdev@vger.kernel.org \ --cc=sven@narfation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.