summaryrefslogtreecommitdiff
path: root/tools/lib/python
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-10-20 12:55:53 -0700
committerJakub Kicinski <kuba@kernel.org>2026-10-20 12:55:54 -0700
commit96dd6308f5adb673dbda80591ce30d9ffd1fe143 (patch)
tree3913a155fd5290e729c93a6c1bfb1efc04650371 /tools/lib/python
parentdcaa6219648955f7a8160313f1685321dbd1bf28 (diff)
parent10a486c17dff0e88122344b27351a5b22e018099 (diff)
Merge branch 'net-sched-reject-oversized-action-dumps-and-cap-unbounded-entry-lists'
Jamal Hadi Salim says: ==================== net/sched: reject oversized action dumps and cap unbounded entry lists An action dump is carried inside nested netlink attributes whose lengths are u16. When a single action's dump does not fit, a plain nla_nest_end() writes a wrapped length and the kernel hands userspace a corrupt reply; on the classifier path the -EMSGSIZE this produces is mistaken for socket buffer exhaustion and retried in a loop that can never succeed. Patch 1 makes every nest an action dump can be carried in fail cleanly (-EMSGSIZE) instead of wrapping, bounds the tfilter_notify_prep() retry, and stops a notification that cannot be built from vetoing a filter or action delete. Patch 2 stops an action add whose actions were already committed from being reported as a failure when the notification cannot be built. Patch 3 caps the number of gate scheduling entries at 1024, rejected with -E2BIG and an extack message. Patch 4 caps the number of taprio schedule entries at 1024 in the same way. Patch 5 makes the action dump report an action that cannot be serialized into one dump skb as -EMSGSIZE instead of returning success and silently dropping the rest of the list. Patches 3 and 4 each bound an unbounded userspace-supplied entry list that a reviewer reading the gate cap would ask about next: the qdisc-side sibling and the SJA1105 schedule-table producer. Patch 5 closes the silent-truncation that the cap admits but cannot reach. They are folded into this posting so the family is fixed in one patchset rather than a stream of follow-ups; each stays a separate commit, so any one can drop out without touching the others. A pre-existing filter reference-count leak in cls_flower, found alongside this work, is being sent to net as its own fix with a Fixes: tag; it is not part of this series. This patchset is a retarget from net to net-next of the previous posting: https://lore.kernel.org/netdev/QDISC-H19Z.v1.20261001053234@mojatatu.com/ The wrapped-nla_len corruption this series addresses is not a regression of commit cfa165cbfbed ("net/sched: act_gate: budget the per-entry list in get_fill_size"): the enclosing action and filter nests antedate it and a plain nla_nest_end() has always written the wrapped length at U16_MAX. This is hardening, not a regression fix, so it targets net-next. ==================== Link: https://patch.msgid.link/QDISC-H19Z.v3.r0.20261012193813@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions