aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Ahern <[email protected]>2022-01-03 10:05:55 -0700
committerJakub Kicinski <[email protected]>2022-01-03 10:04:42 -0800
commit95bdba23b5b4aa75fe3e6c84335e638641c707bb (patch)
treeae9accb45b617390b8a94e8db135ba8eeb550a73
parente30a845b0376eb51c9c94f56bbd53b2e08ba822f (diff)
ipv6: Do cleanup if attribute validation fails in multipath route
As Nicolas noted, if gateway validation fails walking the multipath attribute the code should jump to the cleanup to free previously allocated memory. Fixes: 1ff15a710a86 ("ipv6: Check attribute length for RTA_GATEWAY when deleting multipath route") Signed-off-by: David Ahern <[email protected]> Acked-by: Nicolas Dichtel <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
-rw-r--r--net/ipv6/route.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 087df86c15d1..1deb6297aab6 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -5277,12 +5277,10 @@ static int ip6_route_multipath_add(struct fib6_config *cfg,
nla = nla_find(attrs, attrlen, RTA_GATEWAY);
if (nla) {
- int ret;
-
- ret = fib6_gw_from_attr(&r_cfg.fc_gateway, nla,
+ err = fib6_gw_from_attr(&r_cfg.fc_gateway, nla,
extack);
- if (ret)
- return ret;
+ if (err)
+ goto cleanup;
r_cfg.fc_flags |= RTF_GATEWAY;
}