From: Johannes Berg <[email protected]>
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 <[email protected]>
---
net/netlink/policy.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/netlink/policy.c b/net/netlink/policy.c
index f6491853c797..3f3b421fd70c 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,
+ sizeof(state->policies[0]) * (n_alloc - state->n_alloc));
+
state->policies[state->n_alloc].policy = policy;
state->policies[state->n_alloc].maxtype = maxtype;
state->n_alloc = n_alloc;
--
2.26.2