diff options
author | Johannes Berg <johannes.berg@intel.com> | 2020-08-19 21:52:38 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-08-19 15:39:36 -0700 |
commit | d1fb55592909ea249af70170c7a52e637009564d (patch) | |
tree | 6e1dd506060d1a571d5d41ce5c539cd3f93c5a50 /net/netlink | |
parent | b4c8998be2a40989faab0001714dad0bc5e5fdbf (diff) | |
download | linux-d1fb55592909ea249af70170c7a52e637009564d.tar.gz linux-d1fb55592909ea249af70170c7a52e637009564d.tar.bz2 linux-d1fb55592909ea249af70170c7a52e637009564d.zip |
netlink: fix state reallocation in policy export
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>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netlink')
-rw-r--r-- | net/netlink/policy.c | 3 |
1 files changed, 3 insertions, 0 deletions
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; |