ntpd: explain why scripts can be run in quick succession
[oweals/busybox.git] / networking / route.c
index 2bc2f9210c01329551da6af6199c0e9aafb69581..241be8e09a3507e8d8bc93d90b34ea688783f6e4 100644 (file)
@@ -151,7 +151,7 @@ static int kw_lookup(const char *kwtbl, char ***pargs)
 
 /* Add or delete a route, depending on action. */
 
-static void INET_setroute(int action, char **args)
+static NOINLINE void INET_setroute(int action, char **args)
 {
        struct rtentry rt;
        const char *netmask = NULL;
@@ -302,7 +302,7 @@ static void INET_setroute(int action, char **args)
 
        /* sanity checks.. */
        if (mask_in_addr(rt)) {
-               unsigned long mask = mask_in_addr(rt);
+               uint32_t mask = mask_in_addr(rt);
 
                mask = ~ntohl(mask);
                if ((rt.rt_flags & RTF_HOST) && mask != 0xffffffff) {
@@ -313,7 +313,7 @@ static void INET_setroute(int action, char **args)
                        bb_error_msg_and_die("bogus netmask %s", netmask);
                }
                mask = ((struct sockaddr_in *) &rt.rt_dst)->sin_addr.s_addr;
-               if (mask & ~mask_in_addr(rt)) {
+               if (mask & ~(uint32_t)mask_in_addr(rt)) {
                        bb_error_msg_and_die("netmask and route address conflict");
                }
        }
@@ -336,7 +336,7 @@ static void INET_setroute(int action, char **args)
 
 #if ENABLE_FEATURE_IPV6
 
-static void INET6_setroute(int action, char **args)
+static NOINLINE void INET6_setroute(int action, char **args)
 {
        struct sockaddr_in6 sa6;
        struct in6_rtmsg rt;
@@ -423,7 +423,7 @@ static void INET6_setroute(int action, char **args)
        if (devname) {
                struct ifreq ifr;
                memset(&ifr, 0, sizeof(ifr));
-               strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name));
+               strncpy_IFNAMSIZ(ifr.ifr_name, devname);
                xioctl(skfd, SIOGIFINDEX, &ifr);
                rt.rtmsg_ifindex = ifr.ifr_ifindex;
        }