Merge branch 'master' into net-next

This commit is contained in:
Stephen Hemminger 2017-08-21 17:37:15 -07:00
commit 51186362ba
10 changed files with 38 additions and 25 deletions

View File

@ -526,18 +526,26 @@ static int __dl_argv_handle_port(char *str,
char **p_bus_name, char **p_dev_name, char **p_bus_name, char **p_dev_name,
uint32_t *p_port_index) uint32_t *p_port_index)
{ {
char *handlestr = handlestr; char *handlestr;
char *portstr = portstr; char *portstr;
int err; int err;
strslashrsplit(str, &handlestr, &portstr); err = strslashrsplit(str, &handlestr, &portstr);
if (err) {
pr_err("Port identification \"%s\" is invalid\n", str);
return err;
}
err = strtouint32_t(portstr, p_port_index); err = strtouint32_t(portstr, p_port_index);
if (err) { if (err) {
pr_err("Port index \"%s\" is not a number or not within range\n", pr_err("Port index \"%s\" is not a number or not within range\n",
portstr); portstr);
return err; return err;
} }
strslashrsplit(handlestr, p_bus_name, p_dev_name); err = strslashrsplit(handlestr, p_bus_name, p_dev_name);
if (err) {
pr_err("Port identification \"%s\" is invalid\n", str);
return err;
}
return 0; return 0;
} }

View File

@ -2330,7 +2330,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv)
char *lcl_arg = NULL; char *lcl_arg = NULL;
char *valid_lftp = NULL; char *valid_lftp = NULL;
char *preferred_lftp = NULL; char *preferred_lftp = NULL;
inet_prefix lcl; inet_prefix lcl = {};
inet_prefix peer; inet_prefix peer;
int local_len = 0; int local_len = 0;
int peer_len = 0; int peer_len = 0;

View File

@ -251,7 +251,7 @@ static int can_parse_opt(struct link_util *lu, int argc, char **argv,
return 0; return 0;
} }
static const char *can_state_names[] = { static const char *can_state_names[CAN_STATE_MAX] = {
[CAN_STATE_ERROR_ACTIVE] = "ERROR-ACTIVE", [CAN_STATE_ERROR_ACTIVE] = "ERROR-ACTIVE",
[CAN_STATE_ERROR_WARNING] = "ERROR-WARNING", [CAN_STATE_ERROR_WARNING] = "ERROR-WARNING",
[CAN_STATE_ERROR_PASSIVE] = "ERROR-PASSIVE", [CAN_STATE_ERROR_PASSIVE] = "ERROR-PASSIVE",
@ -283,11 +283,8 @@ static void can_print_opt(struct link_util *lu, FILE *f, struct rtattr *tb[])
if (tb[IFLA_CAN_STATE]) { if (tb[IFLA_CAN_STATE]) {
uint32_t state = rta_getattr_u32(tb[IFLA_CAN_STATE]); uint32_t state = rta_getattr_u32(tb[IFLA_CAN_STATE]);
if (state <= CAN_STATE_MAX) fprintf(f, "state %s ", state < CAN_STATE_MAX ?
print_string(PRINT_ANY, "state", "state %s ", can_state_names[state] : "UNKNOWN");
can_state_names[state]);
else
print_null(PRINT_ANY, "state", "state UNKNOWN", NULL);
} }
if (tb[IFLA_CAN_BERR_COUNTER]) { if (tb[IFLA_CAN_BERR_COUNTER]) {

View File

@ -136,7 +136,9 @@ __u32 ipvrf_get_table(const char *name)
&answer.n, sizeof(answer)) < 0) { &answer.n, sizeof(answer)) < 0) {
/* special case "default" vrf to be the main table */ /* special case "default" vrf to be the main table */
if (errno == ENODEV && !strcmp(name, "default")) if (errno == ENODEV && !strcmp(name, "default"))
rtnl_rttable_a2n(&tb_id, "main"); if (rtnl_rttable_a2n(&tb_id, "main"))
fprintf(stderr,
"BUG: RTTable \"main\" not found.\n");
return tb_id; return tb_id;
} }

View File

@ -136,7 +136,7 @@ static void read_igmp(struct ma_info **result_p)
while (fgets(buf, sizeof(buf), fp)) { while (fgets(buf, sizeof(buf), fp)) {
struct ma_info *ma; struct ma_info *ma;
size_t len; size_t len = 0;
if (buf[0] != '\t') { if (buf[0] != '\t') {
sscanf(buf, "%d%s", &m.index, m.name); sscanf(buf, "%d%s", &m.index, m.name);

View File

@ -1497,7 +1497,8 @@ static int iproute_list_flush_or_save(int argc, char **argv, int action)
id = *argv; id = *argv;
} else if (strcmp(*argv, "mark") == 0) { } else if (strcmp(*argv, "mark") == 0) {
NEXT_ARG(); NEXT_ARG();
get_unsigned(&mark, *argv, 0); if (get_unsigned(&mark, *argv, 0))
invarg("invalid mark value", *argv);
filter.markmask = -1; filter.markmask = -1;
} else if (strcmp(*argv, "via") == 0) { } else if (strcmp(*argv, "via") == 0) {
int family; int family;
@ -1714,7 +1715,8 @@ static int iproute_get(int argc, char **argv)
idev = *argv; idev = *argv;
} else if (matches(*argv, "mark") == 0) { } else if (matches(*argv, "mark") == 0) {
NEXT_ARG(); NEXT_ARG();
get_unsigned(&mark, *argv, 0); if (get_unsigned(&mark, *argv, 0))
invarg("invalid mark value", *argv);
} else if (matches(*argv, "oif") == 0 || } else if (matches(*argv, "oif") == 0 ||
strcmp(*argv, "dev") == 0) { strcmp(*argv, "dev") == 0) {
NEXT_ARG(); NEXT_ARG();

View File

@ -537,8 +537,11 @@ static const char *bpf_find_mntpt(const char *fstype, unsigned long magic,
} }
} }
if (len != PATH_MAX)
return NULL;
fp = fopen("/proc/mounts", "r"); fp = fopen("/proc/mounts", "r");
if (fp == NULL || len != PATH_MAX) if (fp == NULL)
return NULL; return NULL;
while (fscanf(fp, "%*s %" textify(PATH_MAX) "s %99s %*s %*d %*d\n", while (fscanf(fp, "%*s %" textify(PATH_MAX) "s %99s %*s %*d %*d\n",

View File

@ -3479,17 +3479,18 @@ static int netlink_show_one(struct filter *f,
int rq, int wq, int rq, int wq,
unsigned long long sk, unsigned long long cb) unsigned long long sk, unsigned long long cb)
{ {
struct sockstat st; struct sockstat st = {
.state = SS_CLOSE,
.rq = rq,
.wq = wq,
.local.family = AF_NETLINK,
.remote.family = AF_NETLINK,
};
SPRINT_BUF(prot_buf) = {}; SPRINT_BUF(prot_buf) = {};
const char *prot_name; const char *prot_name;
char procname[64] = {}; char procname[64] = {};
st.state = SS_CLOSE;
st.rq = rq;
st.wq = wq;
st.local.family = st.remote.family = AF_NETLINK;
if (f->f) { if (f->f) {
st.rport = -1; st.rport = -1;
st.lport = pid; st.lport = pid;

View File

@ -24,8 +24,8 @@ readdoubles(FILE *fp, int *number)
int limit; int limit;
int n=0, i; int n=0, i;
fstat(fileno(fp), &info); if (!fstat(fileno(fp), &info) &&
if (info.st_size > 0) { info.st_size > 0) {
limit = 2*info.st_size/sizeof(double); /* @@ approximate */ limit = 2*info.st_size/sizeof(double); /* @@ approximate */
} else { } else {
limit = 10000; limit = 10000;

View File

@ -43,7 +43,7 @@ static void explain(void)
static int multiq_parse_opt(struct qdisc_util *qu, int argc, char **argv, static int multiq_parse_opt(struct qdisc_util *qu, int argc, char **argv,
struct nlmsghdr *n) struct nlmsghdr *n)
{ {
struct tc_multiq_qopt opt; struct tc_multiq_qopt opt = {};
if (argc) { if (argc) {
if (strcmp(*argv, "help") == 0) { if (strcmp(*argv, "help") == 0) {