diff --git a/bridge/link.c b/bridge/link.c index 579d57e7..8d89aca2 100644 --- a/bridge/link.c +++ b/bridge/link.c @@ -312,7 +312,7 @@ static int brlink_modify(int argc, char **argv) return -1; } else if (strcmp(*argv, "hairpin") == 0) { NEXT_ARG(); - if (!on_off("hairping", &hairpin, *argv)) + if (!on_off("hairpin", &hairpin, *argv)) return -1; } else if (strcmp(*argv, "fastleave") == 0) { NEXT_ARG(); diff --git a/ip/iplink_geneve.c b/ip/iplink_geneve.c index 1fcdd83a..26e70ff4 100644 --- a/ip/iplink_geneve.c +++ b/ip/iplink_geneve.c @@ -199,7 +199,7 @@ static int geneve_parse_opt(struct link_util *lu, int argc, char **argv, if (is_addrtype_inet(&daddr)) { int type = (daddr.family == AF_INET) ? IFLA_GENEVE_REMOTE : IFLA_GENEVE_REMOTE6; - addattr_l(n, sizeof(1024), type, daddr.data, daddr.bytelen); + addattr_l(n, 1024, type, daddr.data, daddr.bytelen); } if (!set_op || GENEVE_ATTRSET(attrs, IFLA_GENEVE_LABEL)) addattr32(n, 1024, IFLA_GENEVE_LABEL, label); diff --git a/ip/ipneigh.c b/ip/ipneigh.c index 47483817..bd6e5c5e 100644 --- a/ip/ipneigh.c +++ b/ip/ipneigh.c @@ -204,7 +204,7 @@ static void print_cacheinfo(const struct nda_cacheinfo *ci) print_uint(PRINT_ANY, "used", " used %u", ci->ndm_used / hz); print_uint(PRINT_ANY, "confirmed", "/%u", ci->ndm_confirmed / hz); - print_uint(PRINT_ANY, "updated", "/u", ci->ndm_updated / hz); + print_uint(PRINT_ANY, "updated", "/%u", ci->ndm_updated / hz); } static void print_neigh_state(unsigned int nud) diff --git a/ip/iproute.c b/ip/iproute.c index 1d8fd815..44351bc5 100644 --- a/ip/iproute.c +++ b/ip/iproute.c @@ -1038,7 +1038,10 @@ static int parse_nexthops(struct nlmsghdr *n, struct rtmsg *r, memset(rtnh, 0, sizeof(*rtnh)); rtnh->rtnh_len = sizeof(*rtnh); rta->rta_len += rtnh->rtnh_len; - parse_one_nh(n, r, rta, rtnh, &argc, &argv); + if (parse_one_nh(n, r, rta, rtnh, &argc, &argv)) { + fprintf(stderr, "Error: cannot parse nexthop\n"); + exit(-1); + } rtnh = RTNH_NEXT(rtnh); } diff --git a/lib/bpf.c b/lib/bpf.c index 04bc5a56..d9a406bf 100644 --- a/lib/bpf.c +++ b/lib/bpf.c @@ -634,7 +634,7 @@ static int bpf_gen_global(const char *bpf_sub_dir) static int bpf_gen_master(const char *base, const char *name) { - char bpf_sub_dir[PATH_MAX]; + char bpf_sub_dir[PATH_MAX + NAME_MAX + 1]; int ret; snprintf(bpf_sub_dir, sizeof(bpf_sub_dir), "%s%s/", base, name); @@ -675,8 +675,8 @@ static int bpf_slave_via_bind_mnt(const char *full_name, static int bpf_gen_slave(const char *base, const char *name, const char *link) { - char bpf_lnk_dir[PATH_MAX]; - char bpf_sub_dir[PATH_MAX]; + char bpf_lnk_dir[PATH_MAX + NAME_MAX + 1]; + char bpf_sub_dir[PATH_MAX + NAME_MAX]; struct stat sb = {}; int ret; diff --git a/lib/utils.c b/lib/utils.c index 60d7eb14..8a0bff0b 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -568,7 +568,7 @@ static int __get_addr_1(inet_prefix *addr, const char *name, int family) if (strcmp(name, "default") == 0) { if ((family == AF_DECnet) || (family == AF_MPLS)) return -1; - addr->family = (family != AF_UNSPEC) ? family : AF_INET; + addr->family = family; addr->bytelen = af_byte_len(addr->family); addr->bitlen = -2; addr->flags |= PREFIXLEN_SPECIFIED; @@ -579,7 +579,7 @@ static int __get_addr_1(inet_prefix *addr, const char *name, int family) strcmp(name, "any") == 0) { if ((family == AF_DECnet) || (family == AF_MPLS)) return -1; - addr->family = AF_UNSPEC; + addr->family = family; addr->bytelen = 0; addr->bitlen = -2; return 0; diff --git a/tc/f_flower.c b/tc/f_flower.c index 9d4bfd2f..ba8eb66c 100644 --- a/tc/f_flower.c +++ b/tc/f_flower.c @@ -1234,7 +1234,7 @@ static void flower_print_port(char *name, struct rtattr *attr) return; sprintf(namefrm,"\n %s %%u", name); - print_uint(PRINT_ANY, name, namefrm, rta_getattr_be16(attr)); + print_hu(PRINT_ANY, name, namefrm, rta_getattr_be16(attr)); } static void flower_print_tcp_flags(char *name, struct rtattr *flags_attr, diff --git a/tc/m_ife.c b/tc/m_ife.c index 15d09a16..5320e94d 100644 --- a/tc/m_ife.c +++ b/tc/m_ife.c @@ -94,9 +94,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, } else if (matches(*argv, "tcindex") == 0) { ife_tcindex = IFE_META_TCINDEX; } else { - fprintf(stderr, "Illegal meta define <%s>\n", - *argv); - return -1; + invarg("Illegal meta define", *argv); } } else if (matches(*argv, "use") == 0) { NEXT_ARG(); @@ -116,9 +114,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, invarg("ife tcindex val is invalid", *argv); } else { - fprintf(stderr, "Illegal meta use type <%s>\n", - *argv); - return -1; + invarg("Illegal meta use type", *argv); } } else if (matches(*argv, "type") == 0) { NEXT_ARG(); @@ -132,8 +128,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, if (sscanf(daddr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", dbuf, dbuf + 1, dbuf + 2, dbuf + 3, dbuf + 4, dbuf + 5) != 6) { - fprintf(stderr, "Invalid mac address %s\n", - daddr); + invarg("Invalid mac address", *argv); } fprintf(stderr, "dst MAC address <%s>\n", daddr); @@ -143,8 +138,7 @@ static int parse_ife(struct action_util *a, int *argc_p, char ***argv_p, if (sscanf(saddr, "%hhx:%hhx:%hhx:%hhx:%hhx:%hhx", sbuf, sbuf + 1, sbuf + 2, sbuf + 3, sbuf + 4, sbuf + 5) != 6) { - fprintf(stderr, "Invalid mac address %s\n", - saddr); + invarg("Invalid mac address", *argv); } fprintf(stderr, "src MAC address <%s>\n", saddr); } else if (matches(*argv, "help") == 0) {