Netdev List
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, edumazet@google.com, pabeni@redhat.com,
	andrew+netdev@lunn.ch, horms@kernel.org, shuah@kernel.org,
	linux-kselftest@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH net v2 10/10] net: shaper: reject QUEUE scope handle with missing id
Date: Sun, 10 May 2026 12:29:04 -0700	[thread overview]
Message-ID: <20260510192904.3987113-11-kuba@kernel.org> (raw)
In-Reply-To: <20260510192904.3987113-1-kuba@kernel.org>

net_shaper_parse_handle() does not enforce that the user provides
the handle ID. For NODE the ID defaults to UNSPEC for all other
cases it defaults to 0.

For NETDEV 0 is the only option. For QUEUE defaulting to 0 makes
less intuitive sense. Specifically because the behavior should
(IMHO) be the same for all cases where there may be more than
one ID (QUEUE and NODE).

We should either document this as intentional or reject.
I picked the latter with no strong conviction.

Fixes: 4b623f9f0f59 ("net-shapers: implement NL get operation")
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
 net/shaper/shaper.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/net/shaper/shaper.c b/net/shaper/shaper.c
index 4ae3ee6764a0..b1c65110f04d 100644
--- a/net/shaper/shaper.c
+++ b/net/shaper/shaper.c
@@ -477,10 +477,15 @@ static int net_shaper_parse_handle(const struct nlattr *attr,
 	 * shaper (any other value).
 	 */
 	id_attr = tb[NET_SHAPER_A_HANDLE_ID];
-	if (id_attr)
+	if (id_attr) {
 		id = nla_get_u32(id_attr);
-	else if (handle->scope == NET_SHAPER_SCOPE_NODE)
+	} else if (handle->scope == NET_SHAPER_SCOPE_NODE) {
 		id = NET_SHAPER_ID_UNSPEC;
+	} else if (handle->scope == NET_SHAPER_SCOPE_QUEUE) {
+		NL_SET_ERR_ATTR_MISS(info->extack, attr,
+				     NET_SHAPER_A_HANDLE_ID);
+		return -EINVAL;
+	}
 
 	if (id && handle->scope == NET_SHAPER_SCOPE_NETDEV) {
 		NL_SET_ERR_MSG_ATTR(info->extack, id_attr,
-- 
2.54.0


      parent reply	other threads:[~2026-05-10 19:29 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-10 19:28 [PATCH net v2 00/10] net: shaper: fix various minor bugs Jakub Kicinski
2026-05-10 19:28 ` [PATCH net v2 01/10] net: shaper: flip the polarity of the valid flag Jakub Kicinski
2026-05-10 19:28 ` [PATCH net v2 02/10] net: shaper: fix trivial ordering issue in net_shaper_commit() Jakub Kicinski
2026-05-10 19:28 ` [PATCH net v2 03/10] net: shaper: reject duplicate leaves in GROUP request Jakub Kicinski
2026-05-10 19:28 ` [PATCH net v2 04/10] selftests: drv-net: add shaper test for duplicate leaves Jakub Kicinski
2026-05-10 19:28 ` [PATCH net v2 05/10] net: shaper: set ret to -ENOMEM when genlmsg_new() fails in group_doit Jakub Kicinski
2026-05-10 19:29 ` [PATCH net v2 06/10] net: shaper: fix undersized reply skb allocation in GROUP command Jakub Kicinski
2026-05-10 19:29 ` [PATCH net v2 07/10] tools: ynl: add scope qualifier for definitions Jakub Kicinski
2026-05-10 19:29 ` [PATCH net v2 08/10] net: shaper: reject handle IDs exceeding internal bit-width Jakub Kicinski
2026-05-10 19:29 ` [PATCH net v2 09/10] net: shaper: enforce singleton NETDEV scope with id 0 Jakub Kicinski
2026-05-10 19:29 ` Jakub Kicinski [this message]

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=20260510192904.3987113-11-kuba@kernel.org \
    --to=kuba@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=shuah@kernel.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: 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