[Toybox] [PATCH 2/4] Cleanup setRoute and resolve warnings about alignment and NULL args

Eric Molitor emolitor at molitor.org
Mon Jun 1 08:56:11 PDT 2020


---
 toys/pending/route.c | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/toys/pending/route.c b/toys/pending/route.c
index 9c95d996..b37d3ecd 100644
--- a/toys/pending/route.c
+++ b/toys/pending/route.c
@@ -290,20 +290,17 @@ static void setroute(sa_family_t family, char **argv)
   char *targetip;
   int sockfd, arg2_action;
   int action = get_action(&argv, arglist1); //verify the arg for add/del.
+  struct nlmsghdr buf[8192 / sizeof(struct nlmsghdr)];
+  struct nlmsghdr *nlMsg;
+  struct rtmsg *rtMsg;
 
   if (!action || !*argv) help_exit("setroute");
-
   arg2_action = get_action(&argv, arglist2); //verify the arg for -net or -host
   if (!*argv) help_exit("setroute");
-
   targetip = *argv++;
-
-  struct nlmsghdr *nlMsg;
-  struct rtmsg *rtMsg;
-
   sockfd = xsocket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
-  memset(toybuf, 0, sizeof(toybuf));
-  nlMsg = (struct nlmsghdr *) toybuf;
+  memset(buf, 0, sizeof(buf));
+  nlMsg = (struct nlmsghdr *) buf;
   rtMsg = (struct rtmsg *) NLMSG_DATA(nlMsg);
 
   nlMsg->nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg));
@@ -350,7 +347,7 @@ static void setroute(sa_family_t family, char **argv)
     } else if (!strcmp(*argv, "reject")) {
       rtMsg->rtm_type = RTN_UNREACHABLE;
     } else {
-      if (!argv[1]) help_exit(0);
+      if (!argv[1]) show_help(stdout, 1);
 
       if (!strcmp(*argv, "metric")) {
         unsigned int priority = atolx_range(argv[1], 0, UINT_MAX);
@@ -423,7 +420,7 @@ void route_main(void)
   if (!*toys.optargs) {
     if (!strcmp(TT.family, "inet")) display_routes(AF_INET);
     else if (!strcmp(TT.family, "inet6")) display_routes(AF_INET6);
-    else help_exit(0);
+    else show_help(stdout, 1);
   } else {
     if (!strcmp(TT.family, "inet")) setroute(AF_INET, toys.optargs);
     else setroute(AF_INET6, toys.optargs);
-- 
2.25.1



More information about the Toybox mailing list