ifplugd: more robust interface name match check
function old new delta check_existence_through_netlink 278 308 +30 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
b38af7bd31
commit
37201213ca
@ -485,8 +485,10 @@ static smallint detect_link(void)
|
|||||||
|
|
||||||
static NOINLINE int check_existence_through_netlink(void)
|
static NOINLINE int check_existence_through_netlink(void)
|
||||||
{
|
{
|
||||||
|
int iface_len;
|
||||||
char replybuf[1024];
|
char replybuf[1024];
|
||||||
|
|
||||||
|
iface_len = strlen(G.iface);
|
||||||
while (1) {
|
while (1) {
|
||||||
struct nlmsghdr *mhdr;
|
struct nlmsghdr *mhdr;
|
||||||
ssize_t bytes;
|
ssize_t bytes;
|
||||||
@ -526,8 +528,9 @@ static NOINLINE int check_existence_through_netlink(void)
|
|||||||
int len = RTA_PAYLOAD(attr);
|
int len = RTA_PAYLOAD(attr);
|
||||||
if (len > IFNAMSIZ)
|
if (len > IFNAMSIZ)
|
||||||
len = IFNAMSIZ;
|
len = IFNAMSIZ;
|
||||||
|
if (iface_len <= len
|
||||||
if (strncmp(G.iface, RTA_DATA(attr), len) == 0) {
|
&& strncmp(G.iface, RTA_DATA(attr), len) == 0
|
||||||
|
) {
|
||||||
G.iface_exists = (mhdr->nlmsg_type == RTM_NEWLINK);
|
G.iface_exists = (mhdr->nlmsg_type == RTM_NEWLINK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user