Devicetree
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Wei Fang" <wei.fang@nxp.com>
Cc: conor+dt@kernel.org, robh@kernel.org, Frank.Li@kernel.org,
	imx@lists.linux.dev, devicetree@vger.kernel.org
Subject: Re: [PATCH v8 net-next 09/15] net: dsa: add NETC switch tag support
Date: Tue, 19 May 2026 08:25:33 +0000	[thread overview]
Message-ID: <20260519082533.A9D7DC2BCB3@smtp.kernel.org> (raw)
In-Reply-To: <20260518082506.1318236-10-wei.fang@nxp.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Out-of-bounds read and potential kernel panic in `netc_flow_dissect` due to direct pointer dereferencing without bounds or linearity checks.
- [Low] Missing explicit inclusion of `<linux/bitfield.h>` in `net/dsa/tag_netc.c`.
--

commit 9e0475f22527eda82a3169b05fab7628a34dfd3e
Author: Wei Fang <wei.fang@nxp.com>
Subject: net: dsa: add NETC switch tag support

This commit introduces support for the proprietary NXP NETC switch tag
header, which is added to frames after the source MAC address. It supports
Forward tags and SubType 0 of both To_Port and To_Host tags.

> diff --git a/net/dsa/tag_netc.c b/net/dsa/tag_netc.c
> new file mode 100644
> index 0000000000000..ccedfe3a80b64
> --- /dev/null
> +++ b/net/dsa/tag_netc.c
> @@ -0,0 +1,214 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * Copyright 2025-2026 NXP
> + */
> +
> +#include <linux/dsa/tag_netc.h>
> +
> +#include "tag.h"

This isn't a bug, but should linux/bitfield.h be explicitly included here?
This file uses the FIELD_GET and FIELD_PREP macros.

[ ... ]

> +static void netc_flow_dissect(const struct sk_buff *skb, __be16 *proto,
> +			      int *offset)
> +{
> +	struct netc_tag_cmn *tag_cmn = (struct netc_tag_cmn *)(skb->data - 2);
> +	int subtype = FIELD_GET(NETC_TAG_SUBTYPE, tag_cmn->type);
> +	int type = FIELD_GET(NETC_TAG_TYPE, tag_cmn->type);
> +	int tag_len = netc_get_rx_tag_len(type, subtype);
> +
> +	/* The RX minimum frame length of the NETC switch port is 64 bytes,
> +	 * and the frame is received by the ENETC driver. From the hardware
> +	 * perspective, the receive buffer of RX BD is at least 128 bytes,
> +	 * so the switch tag header is guaranteed to be in the linear region
> +	 * of the skb.
> +	 */
> +	*offset = tag_len;
> +	*proto = ((__be16 *)skb->data)[(tag_len / 2) - 1];

Can this cause an out-of-bounds read if an skb is injected from userspace
(e.g., via raw sockets, traffic control filters, or BPF) directed at the
conduit interface?

If the injected skb has zero headroom (skb->data == skb->head), reading
skb->data - 2 will underflow the allocated buffer.

Similarly, if the injected skb is fragmented and lacks sufficient data in
the linear region, reading the inner protocol directly from skb->data
could read past the valid linear area.

Since the skb is passed as const to flow_dissect, pskb_may_pull cannot
be used. Would it be better to use skb_header_pointer to safely access
these packet headers?

> +}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260518082506.1318236-1-wei.fang@nxp.com?part=9

  reply	other threads:[~2026-05-19  8:25 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-18  8:24 [PATCH v8 net-next 00/15] Add preliminary NETC switch support for i.MX94 Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 01/15] dt-bindings: net: dsa: update the description of 'dsa,member' property Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 02/15] dt-bindings: net: dsa: add NETC switch Wei Fang
2026-05-19  8:25   ` sashiko-bot
2026-05-18  8:24 ` [PATCH v8 net-next 03/15] net: enetc: add pre-boot initialization for i.MX94 switch Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 04/15] net: enetc: add basic operations to the FDB table Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 05/15] net: enetc: add support for the "Add" operation to VLAN filter table Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 06/15] net: enetc: add support for the "Update" operation to buffer pool table Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 07/15] net: enetc: add support for "Add" and "Delete" operations to IPFT Wei Fang
2026-05-18  8:24 ` [PATCH v8 net-next 08/15] net: enetc: add multiple command BD rings support Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 09/15] net: dsa: add NETC switch tag support Wei Fang
2026-05-19  8:25   ` sashiko-bot [this message]
2026-05-19  9:23     ` Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 10/15] net: dsa: netc: introduce NXP NETC switch driver for i.MX94 Wei Fang
2026-05-19  8:25   ` sashiko-bot
2026-05-19  9:34     ` Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 11/15] net: dsa: netc: add phylink MAC operations Wei Fang
2026-05-19  8:25   ` sashiko-bot
2026-05-19 10:00     ` Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 12/15] net: dsa: netc: add FDB, STP, MTU, port setup and host flooding support Wei Fang
2026-05-19  8:25   ` sashiko-bot
2026-05-19  9:42     ` Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 13/15] net: dsa: netc: initialize buffer pool table and implement flow-control Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 14/15] net: dsa: netc: add support for the standardized counters Wei Fang
2026-05-19  8:25   ` sashiko-bot
2026-05-19 10:08     ` Wei Fang
2026-05-18  8:25 ` [PATCH v8 net-next 15/15] net: dsa: netc: add support for ethtool private statistics Wei Fang
2026-05-19  8:25   ` sashiko-bot
2026-05-19 10:07     ` Wei Fang

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=20260519082533.A9D7DC2BCB3@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=Frank.Li@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=imx@lists.linux.dev \
    --cc=robh@kernel.org \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=wei.fang@nxp.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox