Message ID | 20230717144532.22037-1-ruc_gongyuanjun@163.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [1/1] drivers:net: fix return value check in be_lancer_xmit_workarounds | expand |
From: Yuanjun Gong <ruc_gongyuanjun@163.com> Date: Mon, 17 Jul 2023 22:45:32 +0800 > in be_lancer_xmit_workarounds, it should go to label 'err' if > an unexpected value is returned by pskb_trim. > Fixes tag needed here. > Signed-off-by: Yuanjun Gong <ruc_gongyuanjun@163.com> > --- > drivers/net/ethernet/emulex/benet/be_main.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c > index 18c2fc880d09..eba29a2e0e8b 100644 > --- a/drivers/net/ethernet/emulex/benet/be_main.c > +++ b/drivers/net/ethernet/emulex/benet/be_main.c > @@ -1138,7 +1138,8 @@ static struct sk_buff *be_lancer_xmit_workarounds(struct be_adapter *adapter, > (lancer_chip(adapter) || BE3_chip(adapter) || > skb_vlan_tag_present(skb)) && is_ipv4_pkt(skb)) { > ip = (struct iphdr *)ip_hdr(skb); > - pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len)); > + if (unlikely(pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len)))) > + goto err; This should be `goto tx_drop`, or we'll leak skb. > } > > /* If vlan tag is already inlined in the packet, skip HW VLAN > -- > 2.17.1
On Mon, Jul 17, 2023 at 12:32:59PM -0700, Kuniyuki Iwashima wrote: > From: Yuanjun Gong <ruc_gongyuanjun@163.com> > Date: Mon, 17 Jul 2023 22:45:32 +0800 > > in be_lancer_xmit_workarounds, it should go to label 'err' if > > an unexpected value is returned by pskb_trim. > > > > Fixes tag needed here. Further to that, assuming this is a fix, then the patch should also be targeted at the net tree, as opposed to the net-next tree. Subject: [PATCH net v2] ... And the prefix should probably be 'be2net:' Subject: [PATCH net v2] be2net: ... ...
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 18c2fc880d09..eba29a2e0e8b 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c @@ -1138,7 +1138,8 @@ static struct sk_buff *be_lancer_xmit_workarounds(struct be_adapter *adapter, (lancer_chip(adapter) || BE3_chip(adapter) || skb_vlan_tag_present(skb)) && is_ipv4_pkt(skb)) { ip = (struct iphdr *)ip_hdr(skb); - pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len)); + if (unlikely(pskb_trim(skb, eth_hdr_len + ntohs(ip->tot_len)))) + goto err; } /* If vlan tag is already inlined in the packet, skip HW VLAN
in be_lancer_xmit_workarounds, it should go to label 'err' if an unexpected value is returned by pskb_trim. Signed-off-by: Yuanjun Gong <ruc_gongyuanjun@163.com> --- drivers/net/ethernet/emulex/benet/be_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)