Instead of initializing fields after (or sometimes even before) zeroing
the whole struct via memset(), initialize the whole thing at declaration
time.

Signed-off-by: Phil Sutter <p...@nwl.cc>
---
 tc/m_action.c | 46 +++++++++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/tc/m_action.c b/tc/m_action.c
index c416d98a775a6..f97ed2e775012 100644
--- a/tc/m_action.c
+++ b/tc/m_action.c
@@ -395,18 +395,19 @@ static int tc_action_gd(int cmd, unsigned int flags, int 
*argc_p, char ***argv_p
                struct nlmsghdr         n;
                struct tcamsg           t;
                char                    buf[MAX_MSG];
-       } req;
-
-       req.t.tca_family = AF_UNSPEC;
-
-       memset(&req, 0, sizeof(req));
+       } req = {
+               .n = {
+                       .nlmsg_len = NLMSG_LENGTH(sizeof(struct tcamsg)),
+                       .nlmsg_flags = NLM_F_REQUEST | flags,
+                       .nlmsg_type = cmd,
+               },
+               .t.tca_family = AF_UNSPEC,
+               .buf = { 0 }
+       };
 
        memset(&nladdr, 0, sizeof(nladdr));
        nladdr.nl_family = AF_NETLINK;
 
-       req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcamsg));
-       req.n.nlmsg_flags = NLM_F_REQUEST|flags;
-       req.n.nlmsg_type = cmd;
        argc -= 1;
        argv += 1;
 
@@ -500,15 +501,16 @@ static int tc_action_modify(int cmd, unsigned int flags, 
int *argc_p, char ***ar
                struct nlmsghdr         n;
                struct tcamsg           t;
                char                    buf[MAX_MSG];
-       } req;
-
-       req.t.tca_family = AF_UNSPEC;
-
-       memset(&req, 0, sizeof(req));
+       } req = {
+               .n = {
+                       .nlmsg_len = NLMSG_LENGTH(sizeof(struct tcamsg)),
+                       .nlmsg_flags = NLM_F_REQUEST | flags,
+                       .nlmsg_type = cmd,
+               },
+               .t.tca_family = AF_UNSPEC,
+               .buf = { 0 }
+       };
 
-       req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcamsg));
-       req.n.nlmsg_flags = NLM_F_REQUEST|flags;
-       req.n.nlmsg_type = cmd;
        tail = NLMSG_TAIL(&req.n);
        argc -= 1;
        argv += 1;
@@ -539,13 +541,11 @@ static int tc_act_list_or_flush(int argc, char **argv, 
int event)
                struct nlmsghdr         n;
                struct tcamsg           t;
                char                    buf[MAX_MSG];
-       } req;
-
-       req.t.tca_family = AF_UNSPEC;
-
-       memset(&req, 0, sizeof(req));
-
-       req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcamsg));
+       } req = {
+               .n.nlmsg_len = NLMSG_LENGTH(sizeof(struct tcamsg)),
+               .t.tca_family = AF_UNSPEC,
+               .buf = { 0 }
+       };
 
        tail = NLMSG_TAIL(&req.n);
        addattr_l(&req.n, MAX_MSG, TCA_ACT_TAB, NULL, 0);
-- 
2.8.2

Reply via email to