[git commit master] ifplugd: more robust interface name match check

Denys Vlasenko vda.linux at googlemail.com
Fri Apr 2 05:04:44 UTC 2010


commit: http://git.busybox.net/busybox/commit/?id=37201213ca45f2163abed70a213bb24956b243a8
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

function                                             old     new   delta
check_existence_through_netlink                      278     308     +30

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/ifplugd.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/networking/ifplugd.c b/networking/ifplugd.c
index f398cca..41b04c4 100644
--- a/networking/ifplugd.c
+++ b/networking/ifplugd.c
@@ -485,8 +485,10 @@ static smallint detect_link(void)
 
 static NOINLINE int check_existence_through_netlink(void)
 {
+	int iface_len;
 	char replybuf[1024];
 
+	iface_len = strlen(G.iface);
 	while (1) {
 		struct nlmsghdr *mhdr;
 		ssize_t bytes;
@@ -526,8 +528,9 @@ static NOINLINE int check_existence_through_netlink(void)
 						int len = RTA_PAYLOAD(attr);
 						if (len > IFNAMSIZ)
 							len = IFNAMSIZ;
-
-						if (strncmp(G.iface, RTA_DATA(attr), len) == 0) {
+						if (iface_len <= len
+						 && strncmp(G.iface, RTA_DATA(attr), len) == 0
+						) {
 							G.iface_exists = (mhdr->nlmsg_type == RTM_NEWLINK);
 						}
 					}
-- 
1.6.3.3



More information about the busybox-cvs mailing list