FAILED: patch "[PATCH] ipv4: Check attribute length for RTA_FLOW in multipath route" failed to apply to 4.14-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 664b9c4b7392ce723b013201843264bf95481ce5 Mon Sep 17 00:00:00 2001
From: David Ahern <[email protected]>
Date: Thu, 30 Dec 2021 17:36:32 -0700
Subject: [PATCH] ipv4: Check attribute length for RTA_FLOW in multipath route
Make sure RTA_FLOW is at least 4B before using.
Fixes 4e902c57417c ("[IPv4]: FIB configuration using struct fib_config")
Signed-off-by David Ahern <[email protected]>
Signed-off-by David S. Miller <[email protected]>
net/ipv4/fib_semantics.c +14 -3
@@ -731,8 +731,13 @@ static int fib_get_nhs(struct fib_info *fi, struct rtnexthop *rtnh, } nla =nla_find (attrs, attrlen,RTA_FLOW ); -if (nla) +if (nla) { +if (nla_len (nla) <sizeof (u32)) { +NL_SET_ERR_MSG (extack,"Invalid RTA_FLOW" ); +return -EINVAL ; + } fib_cfg.fc_flow =nla_get_u32 (nla); + } fib_cfg.fc_encap =nla_find (attrs, attrlen,RTA_ENCAP ); nla =nla_find (attrs, attrlen,RTA_ENCAP_TYPE );
@@ -963,8 +968,14 @@ int fib_nh_match(struct net *net, struct fib_config *cfg, struct fib_info *fi,#ifdef CONFIG_IP_ROUTE_CLASSID nla =nla_find (attrs, attrlen,RTA_FLOW ); -if (nla &&nla_get_u32 (nla) != nh->nh_tclassid) -return 1 ; +if (nla) { +if (nla_len (nla) <sizeof (u32)) { +NL_SET_ERR_MSG (extack,"Invalid RTA_FLOW" ); +return -EINVAL ; + } +if (nla_get_u32 (nla) != nh->nh_tclassid) +return 1 ; + }#endif }