From: Petr Machata Date: Fri, 5 Sep 2025 11:12:33 +0000 (+0200) Subject: net: bridge: Bounce invalid boolopts X-Git-Tag: v6.12.48~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=40600cddf429a234c02ad8f3834b9607e2fbcf1e;p=thirdparty%2Fkernel%2Fstable.git net: bridge: Bounce invalid boolopts [ 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 Reviewed-by: Ido Schimmel Acked-by: Nikolay Aleksandrov Link: https://patch.msgid.link/e6fdca3b5a8d54183fbda075daffef38bdd7ddce.1757070067.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- diff --git a/net/bridge/br.c b/net/bridge/br.c index 2cab878e0a39c..ed08717541fe7 100644 --- a/net/bridge/br.c +++ b/net/bridge/br.c @@ -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));