Use strncmp rather than strcmp in netlink.c when fetching the interface
MAC address and index.
This commit is contained in:
parent
fac6794b6c
commit
765f3de274
@ -30,6 +30,7 @@
|
|||||||
#define NDHC_CONFIG_H_
|
#define NDHC_CONFIG_H_
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <net/if.h>
|
||||||
|
|
||||||
struct client_state_t {
|
struct client_state_t {
|
||||||
unsigned long long leaseStartTime;
|
unsigned long long leaseStartTime;
|
||||||
@ -51,7 +52,7 @@ struct client_config_t {
|
|||||||
char abort_if_no_lease; // Abort if no lease
|
char abort_if_no_lease; // Abort if no lease
|
||||||
char background_if_no_lease; // Fork to background if no lease
|
char background_if_no_lease; // Fork to background if no lease
|
||||||
char clientid_mac; // If true, then the clientid is a MAC addr
|
char clientid_mac; // If true, then the clientid is a MAC addr
|
||||||
char *interface; // The name of the interface to use
|
char interface[IFNAMSIZ]; // The name of the interface to use
|
||||||
char clientid[64]; // Optional client id to use
|
char clientid[64]; // Optional client id to use
|
||||||
char hostname[64]; // Optional hostname to use
|
char hostname[64]; // Optional hostname to use
|
||||||
char vendor[64]; // Vendor identification that will be sent
|
char vendor[64]; // Vendor identification that will be sent
|
||||||
|
@ -399,7 +399,8 @@ int main(int argc, char **argv)
|
|||||||
sizeof client_config.hostname);
|
sizeof client_config.hostname);
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
client_config.interface = optarg;
|
strnkcpy(client_config.interface, optarg,
|
||||||
|
sizeof client_config.interface);
|
||||||
break;
|
break;
|
||||||
case 'n':
|
case 'n':
|
||||||
client_config.abort_if_no_lease = 1;
|
client_config.abort_if_no_lease = 1;
|
||||||
|
@ -58,7 +58,9 @@ static void get_if_index_and_mac(const struct nlmsghdr *nlh,
|
|||||||
nl_attr_parse(nlh, sizeof *ifm, nlrtattr_assign, tb);
|
nl_attr_parse(nlh, sizeof *ifm, nlrtattr_assign, tb);
|
||||||
if (!tb[IFLA_IFNAME])
|
if (!tb[IFLA_IFNAME])
|
||||||
return;
|
return;
|
||||||
if (!strcmp(client_config.interface, nlattr_get_data(tb[IFLA_IFNAME]))) {
|
if (!strncmp(client_config.interface,
|
||||||
|
nlattr_get_data(tb[IFLA_IFNAME]),
|
||||||
|
sizeof client_config.interface)) {
|
||||||
client_config.ifindex = ifm->ifi_index;
|
client_config.ifindex = ifm->ifi_index;
|
||||||
if (!tb[IFLA_ADDRESS])
|
if (!tb[IFLA_ADDRESS])
|
||||||
suicide("FATAL: Adapter %s lacks a hardware address.");
|
suicide("FATAL: Adapter %s lacks a hardware address.");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user