Message ID | 20200819215238.830c1bd10b2e.I316de8a67c79a393ae1826a1b2dcc08f31b1856e@changeid |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [v2] netlink: fix state reallocation in policy export | expand |
From: Johannes Berg <johannes@sipsolutions.net> Date: Wed, 19 Aug 2020 21:52:38 +0200 > From: Johannes Berg <johannes.berg@intel.com> > > Evidently, when I did this previously, we didn't have more than > 10 policies and didn't run into the reallocation path, because > it's missing a memset() for the unused policies. Fix that. > > Fixes: d07dcf9aadd6 ("netlink: add infrastructure to expose policies to userspace") > Signed-off-by: Johannes Berg <johannes.berg@intel.com> Applied and queued up for -stable, thanks Johannes.
diff --git a/net/netlink/policy.c b/net/netlink/policy.c index f6491853c797..2b3e26f7496f 100644 --- a/net/netlink/policy.c +++ b/net/netlink/policy.c @@ -51,6 +51,9 @@ static int add_policy(struct nl_policy_dump **statep, if (!state) return -ENOMEM; + memset(&state->policies[state->n_alloc], 0, + flex_array_size(state, policies, n_alloc - state->n_alloc)); + state->policies[state->n_alloc].policy = policy; state->policies[state->n_alloc].maxtype = maxtype; state->n_alloc = n_alloc;