aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2018-03-27 23:54:54 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2018-03-27 23:55:43 +0200
commit46ba2468a3de85076ce92ce8e8cc7a086bac69f0 (patch)
treeae1a4ae876f126e9e158ee4e95f36462aeffbf1c
parent98592db3231caa905e6d54129c621f3e8e9bbaa3 (diff)
downloadbusybox-w32-46ba2468a3de85076ce92ce8e8cc7a086bac69f0.tar.gz
busybox-w32-46ba2468a3de85076ce92ce8e8cc7a086bac69f0.tar.bz2
busybox-w32-46ba2468a3de85076ce92ce8e8cc7a086bac69f0.zip
ioctl(SIOCGIFINDEX) does not require clearing of entire ifr
function old new delta INET6_setroute 492 472 -20 do_iplink 1357 1330 -27 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-47) Total: -47 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/libiproute/iplink.c2
-rw-r--r--networking/route.c2
-rw-r--r--networking/udhcp/d6_socket.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/networking/libiproute/iplink.c b/networking/libiproute/iplink.c
index 2aa8b683b..9c164a71d 100644
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
@@ -161,7 +161,7 @@ static int get_address(char *dev, int *htype)
161 161
162 s = xsocket(PF_PACKET, SOCK_DGRAM, 0); 162 s = xsocket(PF_PACKET, SOCK_DGRAM, 0);
163 163
164 memset(&ifr, 0, sizeof(ifr)); 164 /*memset(&ifr, 0, sizeof(ifr)); - SIOCGIFINDEX does not need to clear all */
165 strncpy_IFNAMSIZ(ifr.ifr_name, dev); 165 strncpy_IFNAMSIZ(ifr.ifr_name, dev);
166 xioctl(s, SIOCGIFINDEX, &ifr); 166 xioctl(s, SIOCGIFINDEX, &ifr);
167 167
diff --git a/networking/route.c b/networking/route.c
index 6edc0f6d7..8387ce1bb 100644
--- a/networking/route.c
+++ b/networking/route.c
@@ -444,7 +444,7 @@ static NOINLINE void INET6_setroute(int action, char **args)
444 444
445 if (devname) { 445 if (devname) {
446 struct ifreq ifr; 446 struct ifreq ifr;
447 memset(&ifr, 0, sizeof(ifr)); 447 /*memset(&ifr, 0, sizeof(ifr)); - SIOCGIFINDEX does not need to clear all */
448 strncpy_IFNAMSIZ(ifr.ifr_name, devname); 448 strncpy_IFNAMSIZ(ifr.ifr_name, devname);
449 xioctl(skfd, SIOCGIFINDEX, &ifr); 449 xioctl(skfd, SIOCGIFINDEX, &ifr);
450 rt.rtmsg_ifindex = ifr.ifr_ifindex; 450 rt.rtmsg_ifindex = ifr.ifr_ifindex;
diff --git a/networking/udhcp/d6_socket.c b/networking/udhcp/d6_socket.c
index 315c8d98a..6ad53a9c2 100644
--- a/networking/udhcp/d6_socket.c
+++ b/networking/udhcp/d6_socket.c
@@ -63,7 +63,7 @@ int FAST_FUNC d6_read_interface(const char *interface, int *ifindex, struct in6_
63 struct ifreq ifr; 63 struct ifreq ifr;
64 int fd; 64 int fd;
65 65
66 memset(&ifr, 0, sizeof(ifr)); 66 /*memset(&ifr, 0, sizeof(ifr)); - SIOCGIFINDEX does not need to clear all */
67 strncpy_IFNAMSIZ(ifr.ifr_name, interface); 67 strncpy_IFNAMSIZ(ifr.ifr_name, interface);
68 fd = xsocket(AF_INET6, SOCK_RAW, IPPROTO_RAW); 68 fd = xsocket(AF_INET6, SOCK_RAW, IPPROTO_RAW);
69 if (ioctl(fd, SIOCGIFINDEX, &ifr) == 0) { 69 if (ioctl(fd, SIOCGIFINDEX, &ifr) == 0) {