]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: bridge: Bounce invalid boolopts
authorPetr Machata <petrm@nvidia.com>
Fri, 5 Sep 2025 11:12:33 +0000 (13:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Sep 2025 14:35:48 +0000 (16:35 +0200)
[ Upstream commit 8625f5748fea960d2af4f3c3e9891ee8f6f80906 ]

The bridge driver currently tolerates options that it does not recognize.
Instead, it should bounce them.

Fixes: a428afe82f98 ("net: bridge: add support for user-controlled bool options")
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Acked-by: Nikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/e6fdca3b5a8d54183fbda075daffef38bdd7ddce.1757070067.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/bridge/br.c

index 2cab878e0a39c99c10952be7d5c732a40c754655..ed08717541fe742b7cc14fed5d31e1133adad119 100644 (file)
@@ -312,6 +312,13 @@ int br_boolopt_multi_toggle(struct net_bridge *br,
        int err = 0;
        int opt_id;
 
+       opt_id = find_next_bit(&bitmap, BITS_PER_LONG, BR_BOOLOPT_MAX);
+       if (opt_id != BITS_PER_LONG) {
+               NL_SET_ERR_MSG_FMT_MOD(extack, "Unknown boolean option %d",
+                                      opt_id);
+               return -EINVAL;
+       }
+
        for_each_set_bit(opt_id, &bitmap, BR_BOOLOPT_MAX) {
                bool on = !!(bm->optval & BIT(opt_id));