[git commit] ioctl(SIOCGIFINDEX) does not require clearing of entire ifr

Denys Vlasenko vda.linux at googlemail.com
Tue Mar 27 21:55:43 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=46ba2468a3de85076ce92ce8e8cc7a086bac69f0
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

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 at googlemail.com>
---
 networking/libiproute/iplink.c | 2 +-
 networking/route.c             | 2 +-
 networking/udhcp/d6_socket.c   | 2 +-
 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)
 
 	s = xsocket(PF_PACKET, SOCK_DGRAM, 0);
 
-	memset(&ifr, 0, sizeof(ifr));
+	/*memset(&ifr, 0, sizeof(ifr)); - SIOCGIFINDEX does not need to clear all */
 	strncpy_IFNAMSIZ(ifr.ifr_name, dev);
 	xioctl(s, SIOCGIFINDEX, &ifr);
 
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)
 
 	if (devname) {
 		struct ifreq ifr;
-		memset(&ifr, 0, sizeof(ifr));
+		/*memset(&ifr, 0, sizeof(ifr)); - SIOCGIFINDEX does not need to clear all */
 		strncpy_IFNAMSIZ(ifr.ifr_name, devname);
 		xioctl(skfd, SIOCGIFINDEX, &ifr);
 		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_
 		struct ifreq ifr;
 		int fd;
 
-		memset(&ifr, 0, sizeof(ifr));
+		/*memset(&ifr, 0, sizeof(ifr)); - SIOCGIFINDEX does not need to clear all */
 		strncpy_IFNAMSIZ(ifr.ifr_name, interface);
 		fd = xsocket(AF_INET6, SOCK_RAW, IPPROTO_RAW);
 		if (ioctl(fd, SIOCGIFINDEX, &ifr) == 0) {


More information about the busybox-cvs mailing list