zero initialize the struct to avoid the infoleak to the userspace.
Signed-off-by: Ranganath V N <vnranganath.20@gmail.com>
---
net/sched/act_connmark.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/net/sched/act_connmark.c b/net/sched/act_connmark.c
index 3e89927d7116..cf3cdfaaa34b 100644
--- a/net/sched/act_connmark.c
+++ b/net/sched/act_connmark.c
@@ -195,13 +195,15 @@ static inline int tcf_connmark_dump(struct sk_buff *skb, struct tc_action *a,
const struct tcf_connmark_info *ci = to_connmark(a);
unsigned char *b = skb_tail_pointer(skb);
const struct tcf_connmark_parms *parms;
- struct tc_connmark opt = {
- .index = ci->tcf_index,
- .refcnt = refcount_read(&ci->tcf_refcnt) - ref,
- .bindcnt = atomic_read(&ci->tcf_bindcnt) - bind,
- };
+ struct tc_connmark opt;
struct tcf_t t;
+ memset(&opt, 0, sizeof(opt));
+
+ opt.index = ci->tcf_index,
+ opt.refcnt = refcount_read(&ci->tcf_refcnt) - ref,
+ opt.bindcnt = atomic_read(&ci->tcf_bindcnt) - bind,
+
rcu_read_lock();
parms = rcu_dereference(ci->parms);
--
2.43.0