commit: 0ca12bdf661545a4d40579b716dc64a0491eca49
parent 19b46cf1c72fab62a31126d7ac3f84aa3eb40baf
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 25 Nov 2019 19:11:32 -0800
iproute2: Update to 5.4.0
Diffstat:
4 files changed, 124 insertions(+), 124 deletions(-)
diff --git a/pkg/iproute2/patch/0002-Avoid-pointer-arithmetic-on-void.patch b/pkg/iproute2/patch/0002-Avoid-pointer-arithmetic-on-void.patch
@@ -1,4 +1,4 @@
-From fc4d606317d20f72c929e01a60adbbe21f28d0a3 Mon Sep 17 00:00:00 2001
+From b570e0f88fc88e276c547f6fce3dca48a620aed3 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Tue, 12 Mar 2019 19:12:31 -0700
Subject: [PATCH] Avoid pointer arithmetic on `void *`
@@ -13,10 +13,10 @@ Subject: [PATCH] Avoid pointer arithmetic on `void *`
6 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/include/libnetlink.h b/include/libnetlink.h
-index 311cf3fc..2f80d4c4 100644
+index 8ebdc6d3..ff5d92fa 100644
--- a/include/libnetlink.h
+++ b/include/libnetlink.h
-@@ -168,7 +168,7 @@ struct rtattr *rta_nest(struct rtattr *rta, int maxlen, int type);
+@@ -169,7 +169,7 @@ struct rtattr *rta_nest(struct rtattr *rta, int maxlen, int type);
int rta_nest_end(struct rtattr *rta, struct rtattr *nest);
#define RTA_TAIL(rta) \
@@ -25,7 +25,7 @@ index 311cf3fc..2f80d4c4 100644
RTA_ALIGN((rta)->rta_len)))
#define parse_rtattr_nested(tb, max, rta) \
-@@ -231,7 +231,7 @@ int rtnl_from_file(FILE *, rtnl_listen_filter_t handler,
+@@ -232,7 +232,7 @@ int rtnl_from_file(FILE *, rtnl_listen_filter_t handler,
void *jarg);
#define NLMSG_TAIL(nmsg) \
@@ -74,10 +74,10 @@ index 56a76996..1c3c3bf5 100644
open_json_object(NULL);
switch (ghdr->cmd) {
diff --git a/lib/libnetlink.c b/lib/libnetlink.c
-index 8c490f89..8fbdfeee 100644
+index e02d6294..48b19501 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
-@@ -1271,7 +1271,7 @@ int addraw_l(struct nlmsghdr *n, int maxlen, const void *data, int len)
+@@ -1280,7 +1280,7 @@ int addraw_l(struct nlmsghdr *n, int maxlen, const void *data, int len)
}
memcpy(NLMSG_TAIL(n), data, len);
@@ -86,7 +86,7 @@ index 8c490f89..8fbdfeee 100644
n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + NLMSG_ALIGN(len);
return 0;
}
-@@ -1286,7 +1286,7 @@ struct rtattr *addattr_nest(struct nlmsghdr *n, int maxlen, int type)
+@@ -1295,7 +1295,7 @@ struct rtattr *addattr_nest(struct nlmsghdr *n, int maxlen, int type)
int addattr_nest_end(struct nlmsghdr *n, struct rtattr *nest)
{
@@ -95,7 +95,7 @@ index 8c490f89..8fbdfeee 100644
return n->nlmsg_len;
}
-@@ -1302,9 +1302,9 @@ struct rtattr *addattr_nest_compat(struct nlmsghdr *n, int maxlen, int type,
+@@ -1311,9 +1311,9 @@ struct rtattr *addattr_nest_compat(struct nlmsghdr *n, int maxlen, int type,
int addattr_nest_compat_end(struct nlmsghdr *n, struct rtattr *start)
{
@@ -107,7 +107,7 @@ index 8c490f89..8fbdfeee 100644
addattr_nest_end(n, nest);
return n->nlmsg_len;
}
-@@ -1376,7 +1376,7 @@ struct rtattr *rta_nest(struct rtattr *rta, int maxlen, int type)
+@@ -1385,7 +1385,7 @@ struct rtattr *rta_nest(struct rtattr *rta, int maxlen, int type)
int rta_nest_end(struct rtattr *rta, struct rtattr *nest)
{
@@ -116,7 +116,7 @@ index 8c490f89..8fbdfeee 100644
return rta->rta_len;
}
-@@ -1425,7 +1425,7 @@ int __parse_rtattr_nested_compat(struct rtattr *tb[], int max,
+@@ -1434,7 +1434,7 @@ int __parse_rtattr_nested_compat(struct rtattr *tb[], int max,
if (RTA_PAYLOAD(rta) < len)
return -1;
if (RTA_PAYLOAD(rta) >= RTA_ALIGN(len) + sizeof(struct rtattr)) {
@@ -139,5 +139,5 @@ index 95d46ff2..21a87b7c 100644
len = size;
--
-2.23.0
+2.24.0
diff --git a/pkg/iproute2/patch/0006-Don-t-use-empty-initializer-lists.patch b/pkg/iproute2/patch/0006-Don-t-use-empty-initializer-lists.patch
@@ -1,4 +1,4 @@
-From e439e1254386d639085bae186b39c3cbd691af9b Mon Sep 17 00:00:00 2001
+From 1171876610f0463104041c1ab6fa4f12c8ffd4c5 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 16 Jun 2019 12:21:05 -0700
Subject: [PATCH] Don't use empty initializer lists
@@ -126,10 +126,10 @@ index 5dd9a82e..8ea553d4 100644
unsigned short flags = 0;
__u32 tun_id_start = 0;
diff --git a/devlink/devlink.c b/devlink/devlink.c
-index 02933739..e456c067 100644
+index 056ac95e..e249d9f2 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
-@@ -456,7 +456,7 @@ static int attr_cb(const struct nlattr *attr, void *data)
+@@ -530,7 +530,7 @@ static int attr_stats_cb(const struct nlattr *attr, void *data)
static int ifname_map_cb(const struct nlmsghdr *nlh, void *data)
{
@@ -138,7 +138,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
struct dl *dl = data;
struct ifname_map *ifname_map;
-@@ -2008,7 +2008,7 @@ static void pr_out_eswitch(struct dl *dl, struct nlattr **tb)
+@@ -2150,7 +2150,7 @@ static void pr_out_eswitch(struct dl *dl, struct nlattr **tb)
static int cmd_dev_eswitch_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -147,7 +147,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -2146,7 +2146,7 @@ static const struct param_val_conv param_val_conv[] = {
+@@ -2313,7 +2313,7 @@ static const struct param_val_conv param_val_conv[] = {
static void pr_out_param_value(struct dl *dl, const char *nla_name,
int nla_type, struct nlattr *nl)
{
@@ -156,7 +156,7 @@ index 02933739..e456c067 100644
struct nlattr *val_attr;
const char *vstr;
bool conv_exists;
-@@ -2222,7 +2222,7 @@ static void pr_out_param_value(struct dl *dl, const char *nla_name,
+@@ -2389,7 +2389,7 @@ static void pr_out_param_value(struct dl *dl, const char *nla_name,
static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array)
{
@@ -165,7 +165,7 @@ index 02933739..e456c067 100644
struct nlattr *param_value_attr;
const char *nla_name;
int nla_type;
-@@ -2265,7 +2265,7 @@ static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array)
+@@ -2432,7 +2432,7 @@ static void pr_out_param(struct dl *dl, struct nlattr **tb, bool array)
static int cmd_dev_param_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -174,7 +174,7 @@ index 02933739..e456c067 100644
struct dl *dl = data;
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -2291,8 +2291,8 @@ struct param_ctx {
+@@ -2458,8 +2458,8 @@ struct param_ctx {
static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -185,7 +185,7 @@ index 02933739..e456c067 100644
struct nlattr *param_value_attr;
enum devlink_param_cmode cmode;
struct param_ctx *ctx = data;
-@@ -2316,7 +2316,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
+@@ -2483,7 +2483,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
nla_type = mnl_attr_get_u8(nla_param[DEVLINK_ATTR_PARAM_TYPE]);
mnl_attr_for_each_nested(param_value_attr,
nla_param[DEVLINK_ATTR_PARAM_VALUES_LIST]) {
@@ -194,7 +194,7 @@ index 02933739..e456c067 100644
struct nlattr *val_attr;
err = mnl_attr_parse_nested(param_value_attr,
-@@ -2358,7 +2358,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
+@@ -2525,7 +2525,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_dev_param_set(struct dl *dl)
{
@@ -203,16 +203,16 @@ index 02933739..e456c067 100644
struct nlmsghdr *nlh;
bool conv_exists;
uint32_t val_u32;
-@@ -2513,7 +2513,7 @@ static int cmd_dev_param(struct dl *dl)
+@@ -2680,7 +2680,7 @@ static int cmd_dev_param(struct dl *dl)
static int cmd_dev_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {};
+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0};
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
+ uint8_t reload_failed = 0;
- mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -2577,7 +2577,7 @@ static void pr_out_versions_single(struct dl *dl, const struct nlmsghdr *nlh,
+@@ -2756,7 +2756,7 @@ static void pr_out_versions_single(struct dl *dl, const struct nlmsghdr *nlh,
struct nlattr *version;
mnl_attr_for_each(version, nlh, sizeof(struct genlmsghdr)) {
@@ -221,7 +221,7 @@ index 02933739..e456c067 100644
const char *ver_value;
const char *ver_name;
int err;
-@@ -2652,7 +2652,7 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh,
+@@ -2831,7 +2831,7 @@ static void pr_out_info(struct dl *dl, const struct nlmsghdr *nlh,
static int cmd_versions_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -230,7 +230,7 @@ index 02933739..e456c067 100644
bool has_versions, has_info;
struct dl *dl = data;
-@@ -2867,7 +2867,7 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
+@@ -3229,7 +3229,7 @@ static void pr_out_port(struct dl *dl, struct nlattr **tb)
static int cmd_port_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -239,7 +239,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3010,7 +3010,7 @@ static void pr_out_sb(struct dl *dl, struct nlattr **tb)
+@@ -3372,7 +3372,7 @@ static void pr_out_sb(struct dl *dl, struct nlattr **tb)
static int cmd_sb_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -248,7 +248,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3088,7 +3088,7 @@ static void pr_out_sb_pool(struct dl *dl, struct nlattr **tb)
+@@ -3450,7 +3450,7 @@ static void pr_out_sb_pool(struct dl *dl, struct nlattr **tb)
static int cmd_sb_pool_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -257,7 +257,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3173,7 +3173,7 @@ static void pr_out_sb_port_pool(struct dl *dl, struct nlattr **tb)
+@@ -3535,7 +3535,7 @@ static void pr_out_sb_port_pool(struct dl *dl, struct nlattr **tb)
static int cmd_sb_port_pool_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -266,7 +266,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3275,7 +3275,7 @@ static void pr_out_sb_tc_bind(struct dl *dl, struct nlattr **tb)
+@@ -3637,7 +3637,7 @@ static void pr_out_sb_tc_bind(struct dl *dl, struct nlattr **tb)
static int cmd_sb_tc_bind_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -275,7 +275,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3565,7 +3565,7 @@ static void cmd_sb_occ_port_pool_process(struct occ_show *occ_show,
+@@ -3927,7 +3927,7 @@ static void cmd_sb_occ_port_pool_process(struct occ_show *occ_show,
static int cmd_sb_occ_port_pool_process_cb(const struct nlmsghdr *nlh, void *data)
{
struct occ_show *occ_show = data;
@@ -284,7 +284,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3616,7 +3616,7 @@ static void cmd_sb_occ_tc_pool_process(struct occ_show *occ_show,
+@@ -3978,7 +3978,7 @@ static void cmd_sb_occ_tc_pool_process(struct occ_show *occ_show,
static int cmd_sb_occ_tc_pool_process_cb(const struct nlmsghdr *nlh, void *data)
{
struct occ_show *occ_show = data;
@@ -293,7 +293,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -3821,7 +3821,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb);
+@@ -4233,7 +4233,7 @@ static void pr_out_trap_group(struct dl *dl, struct nlattr **tb, bool array);
static int cmd_mon_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dl *dl = data;
@@ -302,7 +302,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
uint8_t cmd = genl->cmd;
-@@ -4272,7 +4272,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx,
+@@ -4723,7 +4723,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx,
static int dpipe_header_field_get(struct nlattr *nl, struct dpipe_field *field)
{
@@ -311,7 +311,7 @@ index 02933739..e456c067 100644
const char *name;
int err;
-@@ -4323,7 +4323,7 @@ static unsigned int dpipe_header_field_count_get(struct nlattr *nla_fields)
+@@ -4774,7 +4774,7 @@ static unsigned int dpipe_header_field_count_get(struct nlattr *nla_fields)
static int dpipe_header_get(struct dpipe_ctx *ctx, struct nlattr *nl)
{
@@ -320,7 +320,7 @@ index 02933739..e456c067 100644
struct dpipe_header *header;
unsigned int fields_count;
const char *header_name;
-@@ -4379,7 +4379,7 @@ static int dpipe_headers_get(struct dpipe_ctx *ctx, struct nlattr **tb)
+@@ -4830,7 +4830,7 @@ static int dpipe_headers_get(struct dpipe_ctx *ctx, struct nlattr **tb)
static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
{
struct dpipe_ctx *ctx = data;
@@ -329,7 +329,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
int err;
-@@ -4401,7 +4401,7 @@ static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
+@@ -4852,7 +4852,7 @@ static int cmd_dpipe_header_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_dpipe_headers_show(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -338,7 +338,7 @@ index 02933739..e456c067 100644
uint16_t flags = NLM_F_REQUEST | NLM_F_ACK;
int err;
-@@ -4491,7 +4491,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action,
+@@ -4942,7 +4942,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action,
static int dpipe_action_parse(struct dpipe_action *action, struct nlattr *nl)
{
@@ -347,7 +347,7 @@ index 02933739..e456c067 100644
int err;
err = mnl_attr_parse_nested(nl, attr_cb, nla_action);
-@@ -4575,7 +4575,7 @@ static int dpipe_match_parse(struct dpipe_match *match,
+@@ -5026,7 +5026,7 @@ static int dpipe_match_parse(struct dpipe_match *match,
struct nlattr *nl)
{
@@ -356,7 +356,7 @@ index 02933739..e456c067 100644
int err;
err = mnl_attr_parse_nested(nl, attr_cb, nla_match);
-@@ -4679,7 +4679,7 @@ resource_path_print(struct dl *dl, struct resources *resources,
+@@ -5130,7 +5130,7 @@ resource_path_print(struct dl *dl, struct resources *resources,
static int dpipe_table_show(struct dpipe_ctx *ctx, struct nlattr *nl)
{
@@ -365,7 +365,7 @@ index 02933739..e456c067 100644
struct dpipe_table *table;
uint32_t resource_units;
bool counters_enabled;
-@@ -4772,7 +4772,7 @@ err_table_show:
+@@ -5223,7 +5223,7 @@ err_table_show:
static int cmd_dpipe_table_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct dpipe_ctx *ctx = data;
@@ -374,7 +374,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -4790,8 +4790,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data);
+@@ -5241,8 +5241,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data);
static int cmd_dpipe_table_show(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -385,7 +385,7 @@ index 02933739..e456c067 100644
uint16_t flags = NLM_F_REQUEST;
int err;
-@@ -5043,7 +5043,7 @@ static void pr_out_dpipe_entry_value(struct dpipe_ctx *ctx,
+@@ -5494,7 +5494,7 @@ static void pr_out_dpipe_entry_value(struct dpipe_ctx *ctx,
static int dpipe_entry_match_value_show(struct dpipe_ctx *ctx,
struct nlattr *nl)
{
@@ -394,7 +394,7 @@ index 02933739..e456c067 100644
struct dpipe_match match;
int err;
-@@ -5074,7 +5074,7 @@ err_match_parse:
+@@ -5525,7 +5525,7 @@ err_match_parse:
static int dpipe_entry_action_value_show(struct dpipe_ctx *ctx,
struct nlattr *nl)
{
@@ -403,7 +403,7 @@ index 02933739..e456c067 100644
struct dpipe_action action;
int err;
-@@ -5130,7 +5130,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx,
+@@ -5581,7 +5581,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx,
static int dpipe_entry_show(struct dpipe_ctx *ctx, struct nlattr *nl)
{
@@ -412,7 +412,7 @@ index 02933739..e456c067 100644
uint32_t entry_index;
uint64_t counter;
int err;
-@@ -5193,7 +5193,7 @@ err_entry_show:
+@@ -5644,7 +5644,7 @@ err_entry_show:
static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
{
struct dpipe_ctx *ctx = data;
@@ -421,7 +421,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -5209,7 +5209,7 @@ static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
+@@ -5660,7 +5660,7 @@ static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_dpipe_table_dump(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -430,7 +430,7 @@ index 02933739..e456c067 100644
uint16_t flags = NLM_F_REQUEST;
int err;
-@@ -5330,7 +5330,7 @@ static int
+@@ -5781,7 +5781,7 @@ static int
resource_get(struct resource_ctx *ctx, struct resource *resource,
struct resource *parent_resource, struct nlattr *nl)
{
@@ -439,7 +439,7 @@ index 02933739..e456c067 100644
struct nlattr *nla_child_resource;
struct nlattr *nla_resources;
bool top = false;
-@@ -5469,7 +5469,7 @@ static int resources_get(struct resource_ctx *ctx, struct nlattr **tb)
+@@ -5920,7 +5920,7 @@ static int resources_get(struct resource_ctx *ctx, struct nlattr **tb)
static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
{
struct resource_ctx *ctx = data;
@@ -448,7 +448,7 @@ index 02933739..e456c067 100644
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
int err;
-@@ -5493,8 +5493,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
+@@ -5944,8 +5944,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data)
static int cmd_resource_show(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -459,7 +459,7 @@ index 02933739..e456c067 100644
int err;
err = dl_argv_parse(dl, DL_OPT_HANDLE, 0);
-@@ -5589,7 +5589,7 @@ err_resource_lookup:
+@@ -6040,7 +6040,7 @@ err_resource_lookup:
static int cmd_resource_set(struct dl *dl)
{
struct nlmsghdr *nlh;
@@ -468,7 +468,7 @@ index 02933739..e456c067 100644
int err;
err = resource_ctx_init(&ctx, dl);
-@@ -5707,7 +5707,7 @@ static void pr_out_region_snapshots_id(struct dl *dl, struct nlattr **tb, int in
+@@ -6156,7 +6156,7 @@ static void pr_out_region_snapshots_id(struct dl *dl, struct nlattr **tb, int in
static void pr_out_snapshots(struct dl *dl, struct nlattr **tb)
{
@@ -477,7 +477,7 @@ index 02933739..e456c067 100644
struct nlattr *nla_sanpshot;
int err, index = 0;
-@@ -5748,7 +5748,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb)
+@@ -6197,7 +6197,7 @@ static void pr_out_region(struct dl *dl, struct nlattr **tb)
static int cmd_region_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -486,7 +486,7 @@ index 02933739..e456c067 100644
struct dl *dl = data;
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
-@@ -5804,8 +5804,8 @@ static int cmd_region_read_cb(const struct nlmsghdr *nlh, void *data)
+@@ -6253,8 +6253,8 @@ static int cmd_region_read_cb(const struct nlmsghdr *nlh, void *data)
{
struct nlattr *nla_entry, *nla_chunk_data, *nla_chunk_addr;
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -497,7 +497,7 @@ index 02933739..e456c067 100644
struct dl *dl = data;
int err;
-@@ -6057,7 +6057,7 @@ static int cmd_fmsg_nest(struct fmsg_cb_data *fmsg_data, uint8_t nest_value,
+@@ -6506,7 +6506,7 @@ static int cmd_fmsg_nest(struct fmsg_cb_data *fmsg_data, uint8_t nest_value,
static int cmd_fmsg_object_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -506,7 +506,7 @@ index 02933739..e456c067 100644
struct fmsg_cb_data *fmsg_data = data;
struct dl *dl = fmsg_data->dl;
struct nlattr *nla_object;
-@@ -6194,7 +6194,7 @@ out:
+@@ -6643,7 +6643,7 @@ out:
static void pr_out_health(struct dl *dl, struct nlattr **tb_health)
{
@@ -515,7 +515,7 @@ index 02933739..e456c067 100644
enum devlink_health_reporter_state state;
const struct nlattr *attr;
uint64_t time_ms;
-@@ -6250,7 +6250,7 @@ static void pr_out_health(struct dl *dl, struct nlattr **tb_health)
+@@ -6699,7 +6699,7 @@ static void pr_out_health(struct dl *dl, struct nlattr **tb_health)
static int cmd_health_show_cb(const struct nlmsghdr *nlh, void *data)
{
struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh);
@@ -525,7 +525,7 @@ index 02933739..e456c067 100644
mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb);
diff --git a/devlink/mnlg.c b/devlink/mnlg.c
-index ee125df0..72db0dc6 100644
+index c7d25e87..baeda3d8 100644
--- a/devlink/mnlg.c
+++ b/devlink/mnlg.c
@@ -154,7 +154,7 @@ static void parse_genl_mc_grps(struct nlattr *nested,
@@ -556,10 +556,10 @@ index ee125df0..72db0dc6 100644
mnl_attr_parse(nlh, sizeof(*genl), get_family_id_attr_cb, tb);
diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c
-index d35072d4..88340835 100644
+index c712d664..318e54b1 100644
--- a/ip/ip6tunnel.c
+++ b/ip/ip6tunnel.c
-@@ -285,7 +285,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
+@@ -286,7 +286,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip6_tnl_parm2 *p)
if (get_ifname(p->name, *argv))
invarg("\"name\" not a valid ifname", *argv);
if (cmd == SIOCCHGTUNNEL && count == 0) {
@@ -709,7 +709,7 @@ index ddee4905..a56c71e5 100644
struct tm *tp;
diff --git a/ip/iptunnel.c b/ip/iptunnel.c
-index 92a5cb92..3efae379 100644
+index 696f3b92..92b86c17 100644
--- a/ip/iptunnel.c
+++ b/ip/iptunnel.c
@@ -176,7 +176,7 @@ static int parse_args(int argc, char **argv, int cmd, struct ip_tunnel_parm *p)
@@ -727,11 +727,11 @@ index 92a5cb92..3efae379 100644
const struct ip_tunnel_parm *p = t;
- struct ip_tunnel_6rd ip6rd = {};
+ struct ip_tunnel_6rd ip6rd = {0};
- char s1[1024];
- char s2[1024];
+ SPRINT_BUF(b1);
-@@ -302,7 +302,7 @@ static void print_tunnel(const void *t)
- p->iph.saddr ? rt_addr_n2a_r(AF_INET, 4, &p->iph.saddr, s2, sizeof(s2)) : "any");
+ /* Do not use format_host() for local addr,
+@@ -310,7 +310,7 @@ static void print_tunnel(const void *t)
+ : "any");
if (p->iph.protocol == IPPROTO_IPV6 && (p->i_flags & SIT_ISATAP)) {
- struct ip_tunnel_prl prl[16] = {};
@@ -739,7 +739,7 @@ index 92a5cb92..3efae379 100644
int i;
prl[0].datalen = sizeof(prl) - sizeof(prl[0]);
-@@ -424,7 +424,7 @@ static int do_show(int argc, char **argv)
+@@ -433,7 +433,7 @@ static int do_show(int argc, char **argv)
static int do_prl(int argc, char **argv)
{
@@ -748,7 +748,7 @@ index 92a5cb92..3efae379 100644
int count = 0;
int cmd = 0;
const char *medium = NULL;
-@@ -473,7 +473,7 @@ static int do_prl(int argc, char **argv)
+@@ -482,7 +482,7 @@ static int do_prl(int argc, char **argv)
static int do_6rd(int argc, char **argv)
{
@@ -927,7 +927,7 @@ index b03ccc58..1e1c58f5 100644
__u32 icvlen, trunclen;
char *name;
diff --git a/lib/bpf.c b/lib/bpf.c
-index 23cb0d96..7b9b7523 100644
+index 10cf9bf4..f4ac5f16 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
@@ -148,7 +148,7 @@ static int bpf(int cmd, union bpf_attr *attr, unsigned int size)
@@ -966,7 +966,7 @@ index 23cb0d96..7b9b7523 100644
uint32_t len = sizeof(info);
int fd, ret, dump_ok = 0;
SPRINT_BUF(tmp);
-@@ -449,7 +449,7 @@ static int bpf_map_selfcheck_pinned(int fd, const struct bpf_elf_map *map,
+@@ -457,7 +457,7 @@ static int bpf_map_selfcheck_pinned(int fd, const struct bpf_elf_map *map,
struct bpf_map_ext *ext, int length,
enum bpf_prog_type type)
{
@@ -975,7 +975,7 @@ index 23cb0d96..7b9b7523 100644
int ret;
ret = bpf_derive_elf_map_from_fdinfo(fd, &tmp, ext);
-@@ -510,7 +510,7 @@ static int bpf_mnt_fs(const char *target)
+@@ -518,7 +518,7 @@ static int bpf_mnt_fs(const char *target)
static int bpf_mnt_check_target(const char *target)
{
@@ -984,16 +984,16 @@ index 23cb0d96..7b9b7523 100644
int ret;
ret = stat(target, &sb);
-@@ -694,7 +694,7 @@ static int bpf_gen_slave(const char *base, const char *name,
+@@ -722,7 +722,7 @@ static int bpf_gen_slave(const char *base, const char *name,
{
- char bpf_lnk_dir[PATH_MAX + NAME_MAX + 1];
- char bpf_sub_dir[PATH_MAX + NAME_MAX];
+ char *bpf_lnk_dir = NULL;
+ char *bpf_sub_dir = NULL;
- struct stat sb = {};
+ struct stat sb = {0};
int ret;
- snprintf(bpf_lnk_dir, sizeof(bpf_lnk_dir), "%s%s/", base, link);
-@@ -797,7 +797,7 @@ out:
+ ret = asprintf(&bpf_lnk_dir, "%s%s/", base, link);
+@@ -844,7 +844,7 @@ out:
static int bpf_obj_get(const char *pathname, enum bpf_prog_type type)
{
@@ -1002,7 +1002,7 @@ index 23cb0d96..7b9b7523 100644
char tmp[PATH_MAX];
if (strlen(pathname) > 2 && pathname[0] == 'm' &&
-@@ -968,7 +968,7 @@ int bpf_load_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops,
+@@ -1015,7 +1015,7 @@ int bpf_load_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops,
int bpf_parse_common(struct bpf_cfg_in *cfg, const struct bpf_cfg_ops *ops)
{
@@ -1011,7 +1011,7 @@ index 23cb0d96..7b9b7523 100644
if (ops->cbpf_cb) {
opt_tbl[CBPF_BYTECODE] = true;
-@@ -1011,7 +1011,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
+@@ -1058,7 +1058,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv)
.argc = argc,
.argv = argv,
};
@@ -1020,7 +1020,7 @@ index 23cb0d96..7b9b7523 100644
int ret, prog_fd, map_fd;
uint32_t map_key;
-@@ -1064,7 +1064,7 @@ out_prog:
+@@ -1111,7 +1111,7 @@ out_prog:
int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
{
@@ -1029,7 +1029,7 @@ index 23cb0d96..7b9b7523 100644
attr.target_fd = target_fd;
attr.attach_bpf_fd = prog_fd;
-@@ -1075,7 +1075,7 @@ int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
+@@ -1122,7 +1122,7 @@ int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type)
int bpf_prog_detach_fd(int target_fd, enum bpf_attach_type type)
{
@@ -1038,7 +1038,7 @@ index 23cb0d96..7b9b7523 100644
attr.target_fd = target_fd;
attr.attach_type = type;
-@@ -1088,7 +1088,7 @@ static int bpf_prog_load_dev(enum bpf_prog_type type,
+@@ -1135,7 +1135,7 @@ static int bpf_prog_load_dev(enum bpf_prog_type type,
const char *license, __u32 ifindex,
char *log, size_t size_log)
{
@@ -1047,7 +1047,7 @@ index 23cb0d96..7b9b7523 100644
attr.prog_type = type;
attr.insns = bpf_ptr_to_u64(insns);
-@@ -1251,7 +1251,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
+@@ -1298,7 +1298,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
uint32_t ifindex, uint32_t btf_id_key,
uint32_t btf_id_val)
{
@@ -1056,7 +1056,7 @@ index 23cb0d96..7b9b7523 100644
attr.map_type = type;
attr.key_size = size_key;
-@@ -1270,7 +1270,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
+@@ -1317,7 +1317,7 @@ static int bpf_map_create(enum bpf_map_type type, uint32_t size_key,
static int bpf_btf_load(void *btf, size_t size_btf,
char *log, size_t size_log)
{
@@ -1065,7 +1065,7 @@ index 23cb0d96..7b9b7523 100644
attr.btf = bpf_ptr_to_u64(btf);
attr.btf_size = size_btf;
-@@ -1286,7 +1286,7 @@ static int bpf_btf_load(void *btf, size_t size_btf,
+@@ -1333,7 +1333,7 @@ static int bpf_btf_load(void *btf, size_t size_btf,
static int bpf_obj_pin(int fd, const char *pathname)
{
@@ -1074,7 +1074,7 @@ index 23cb0d96..7b9b7523 100644
attr.pathname = bpf_ptr_to_u64(pathname);
attr.bpf_fd = fd;
-@@ -1971,7 +1971,7 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
+@@ -2039,7 +2039,7 @@ static int bpf_map_verify_all_offs(struct bpf_elf_ctx *ctx, int end)
static int bpf_fetch_maps_end(struct bpf_elf_ctx *ctx)
{
@@ -1083,7 +1083,7 @@ index 23cb0d96..7b9b7523 100644
int i, sym_num = bpf_map_num_sym(ctx);
__u8 *buff;
-@@ -2477,7 +2477,7 @@ static int bpf_fetch_prog_relo(struct bpf_elf_ctx *ctx, const char *section,
+@@ -2545,7 +2545,7 @@ static int bpf_fetch_prog_relo(struct bpf_elf_ctx *ctx, const char *section,
int ret, idx, i, fd = -1;
for (i = 1; i < ctx->elf_hdr.e_shnum; i++) {
@@ -1092,7 +1092,7 @@ index 23cb0d96..7b9b7523 100644
ret = bpf_fill_section_data(ctx, i, &data_relo);
if (ret < 0 || data_relo.sec_hdr.sh_type != SHT_REL)
-@@ -2652,7 +2652,7 @@ static int bpf_fill_prog_arrays(struct bpf_elf_ctx *ctx)
+@@ -2729,7 +2729,7 @@ static int bpf_fill_prog_arrays(struct bpf_elf_ctx *ctx)
ret = bpf_map_update(ctx->map_fds[idx], &key_id,
&fd, BPF_ANY);
if (ret < 0) {
@@ -1101,7 +1101,7 @@ index 23cb0d96..7b9b7523 100644
ret = -errno;
if (errno == E2BIG) {
-@@ -2743,7 +2743,7 @@ static bool bpf_pinning_reserved(uint32_t pinning)
+@@ -2820,7 +2820,7 @@ static bool bpf_pinning_reserved(uint32_t pinning)
static void bpf_hash_init(struct bpf_elf_ctx *ctx, const char *db_file)
{
struct bpf_hash_entry *entry;
@@ -1110,7 +1110,7 @@ index 23cb0d96..7b9b7523 100644
uint32_t pinning;
FILE *fp;
int ret;
-@@ -2841,7 +2841,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx)
+@@ -2918,7 +2918,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx)
fd = open(path_jit, O_RDONLY);
if (fd > 0) {
@@ -1120,7 +1120,7 @@ index 23cb0d96..7b9b7523 100644
if (read(fd, tmp, sizeof(tmp)) > 0)
ctx->cfg.jit_enabled = atoi(tmp);
diff --git a/lib/libnetlink.c b/lib/libnetlink.c
-index 8fbdfeee..cb347d7d 100644
+index 48b19501..5345b1c7 100644
--- a/lib/libnetlink.c
+++ b/lib/libnetlink.c
@@ -81,7 +81,7 @@ static void print_ext_ack_msg(bool is_err, const char *msg)
@@ -1177,10 +1177,10 @@ index 504961cb..ac412e29 100644
for (i = 0; i < ifnum; i++) {
if (get_ifname(ifr.ifr_name, ifnames[i]))
diff --git a/misc/ss.c b/misc/ss.c
-index 363b4c8d..3a3a61ec 100644
+index 794c1895..769a34f2 100644
--- a/misc/ss.c
+++ b/misc/ss.c
-@@ -2609,7 +2609,7 @@ static void sctp_timer_print(struct tcpstat *s)
+@@ -2611,7 +2611,7 @@ static void sctp_timer_print(struct tcpstat *s)
static int tcp_show_line(char *line, const struct filter *f, int family)
{
int rto = 0, ato = 0;
@@ -1189,7 +1189,7 @@ index 363b4c8d..3a3a61ec 100644
char *loc, *rem, *data;
char opt[256];
int n;
-@@ -2757,7 +2757,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
+@@ -2759,7 +2759,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
struct rtattr *tb[])
{
double rtt = 0;
@@ -1198,7 +1198,7 @@ index 363b4c8d..3a3a61ec 100644
s.ss.state = r->idiag_state;
-@@ -3021,7 +3021,7 @@ static int inet_show_sock(struct nlmsghdr *nlh,
+@@ -3023,7 +3023,7 @@ static int inet_show_sock(struct nlmsghdr *nlh,
inet_stats_print(s, v6only);
if (show_options) {
@@ -1207,7 +1207,7 @@ index 363b4c8d..3a3a61ec 100644
t.timer = r->idiag_timer;
t.timeout = r->idiag_expires;
-@@ -3243,7 +3243,7 @@ static int show_one_inet_sock(struct nlmsghdr *h, void *arg)
+@@ -3245,7 +3245,7 @@ static int show_one_inet_sock(struct nlmsghdr *h, void *arg)
int err;
struct inet_diag_arg *diag_arg = arg;
struct inet_diag_msg *r = NLMSG_DATA(h);
@@ -1216,16 +1216,16 @@ index 363b4c8d..3a3a61ec 100644
if (!(diag_arg->f->families & FAMILY_MASK(r->idiag_family)))
return 0;
-@@ -3331,7 +3331,7 @@ static int tcp_show_netlink_file(struct filter *f)
- while (1) {
- int status, err2;
+@@ -3334,7 +3334,7 @@ static int tcp_show_netlink_file(struct filter *f)
+ int err2;
+ size_t status, nitems;
struct nlmsghdr *h = (struct nlmsghdr *)buf;
- struct sockstat s = {};
+ struct sockstat s = {0};
status = fread(buf, 1, sizeof(*h), fp);
- if (status < 0) {
-@@ -3477,7 +3477,7 @@ static int sctp_show(struct filter *f)
+ if (status != sizeof(*h)) {
+@@ -3479,7 +3479,7 @@ static int sctp_show(struct filter *f)
static int dgram_show_line(char *line, const struct filter *f, int family)
{
@@ -1234,7 +1234,7 @@ index 363b4c8d..3a3a61ec 100644
char *loc, *rem, *data;
char opt[256];
int n;
-@@ -3617,7 +3617,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f)
+@@ -3619,7 +3619,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f)
static void unix_stats_print(struct sockstat *s, struct filter *f)
{
@@ -1243,7 +1243,7 @@ index 363b4c8d..3a3a61ec 100644
sock_state_print(s);
-@@ -3930,7 +3930,7 @@ static int packet_show_sock(struct nlmsghdr *nlh, void *arg)
+@@ -3932,7 +3932,7 @@ static int packet_show_sock(struct nlmsghdr *nlh, void *arg)
struct packet_diag_info *pinfo = NULL;
struct packet_diag_ring *ring_rx = NULL, *ring_tx = NULL;
struct rtattr *tb[PACKET_DIAG_MAX+1];
@@ -1252,7 +1252,7 @@ index 363b4c8d..3a3a61ec 100644
uint32_t fanout = 0;
bool has_fanout = false;
-@@ -4079,7 +4079,7 @@ static int packet_show_netlink(struct filter *f)
+@@ -4081,7 +4081,7 @@ static int packet_show_netlink(struct filter *f)
static int packet_show_line(char *buf, const struct filter *f, int fam)
{
unsigned long long sk;
@@ -1261,7 +1261,7 @@ index 363b4c8d..3a3a61ec 100644
int type, prot, iface, state, rq, uid, ino;
sscanf(buf, "%llx %*d %d %x %d %d %u %u %u",
-@@ -4203,7 +4203,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg)
+@@ -4205,7 +4205,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg)
struct xdp_diag_info *info = NULL;
struct xdp_diag_umem *umem = NULL;
const struct filter *f = arg;
@@ -1270,7 +1270,7 @@ index 363b4c8d..3a3a61ec 100644
parse_rtattr(tb, XDP_DIAG_MAX, (struct rtattr *)(msg + 1),
nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*msg)));
-@@ -4284,9 +4284,9 @@ static int netlink_show_one(struct filter *f,
+@@ -4286,9 +4286,9 @@ static int netlink_show_one(struct filter *f,
.remote.family = AF_NETLINK,
};
@@ -1282,7 +1282,7 @@ index 363b4c8d..3a3a61ec 100644
if (f->f) {
st.rport = -1;
-@@ -4533,8 +4533,8 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
+@@ -4535,8 +4535,8 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
uint32_t node = rta_getattr_u32(net_addr);
uint32_t identity = rta_getattr_u32(id);
@@ -1293,7 +1293,7 @@ index 363b4c8d..3a3a61ec 100644
sprintf(addr, "%u", node);
sprintf(port, "%u", identity);
-@@ -4544,12 +4544,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
+@@ -4546,12 +4546,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id)
static int tipc_show_sock(struct nlmsghdr *nlh, void *arg)
{
@@ -1506,7 +1506,7 @@ index 954e465d..d687710c 100644
ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line);
if (ret != MNL_CB_OK)
diff --git a/rdma/res.c b/rdma/res.c
-index c5e8ba1d..6388f3e4 100644
+index 6003006e..2045dc3f 100644
--- a/rdma/res.c
+++ b/rdma/res.c
@@ -34,7 +34,7 @@ static int res_print_summary(struct rd *rd, struct nlattr **tb)
@@ -2244,7 +2244,7 @@ index c0f1f160..45a6b184 100644
NEXT_ARG();
if (matches(*argv, "help") == 0) {
diff --git a/tc/tc_util.c b/tc/tc_util.c
-index b90d256c..d639f1b1 100644
+index 393721e3..17722b22 100644
--- a/tc/tc_util.c
+++ b/tc/tc_util.c
@@ -129,7 +129,7 @@ ok:
@@ -2568,5 +2568,5 @@ index 852984ec..c6bf518b 100644
mnl_attr_parse_nested(attrs[TIPC_NLA_SOCK_CON], parse_attrs, con);
node = mnl_attr_get_u32(con[TIPC_NLA_CON_NODE]);
--
-2.23.0
+2.24.0
diff --git a/pkg/iproute2/patch/0009-Don-t-emit-second-operand-to-operator.patch b/pkg/iproute2/patch/0009-Don-t-emit-second-operand-to-operator.patch
@@ -1,4 +1,4 @@
-From 50448fbc36b843b9ccd69b93b1a05ec5a954579d Mon Sep 17 00:00:00 2001
+From fa208887db9827b6495508dcae061875e839a015 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 16 Jun 2019 12:39:40 -0700
Subject: [PATCH] Don't emit second operand to '?' operator
@@ -35,7 +35,7 @@ index 60f34a32..b47a65aa 100644
fprintf(fp, "%s ", str);
if (progname)
diff --git a/ip/iptunnel.c b/ip/iptunnel.c
-index 3efae379..2d5b8161 100644
+index 92b86c17..6a2da548 100644
--- a/ip/iptunnel.c
+++ b/ip/iptunnel.c
@@ -278,11 +278,16 @@ static int do_add(int cmd, int argc, char **argv)
@@ -70,10 +70,10 @@ index f1bf0b18..41fa1649 100644
print_uint(PRINT_ANY, "pid",
"(%d)", pid);
diff --git a/lib/bpf.c b/lib/bpf.c
-index 7b9b7523..f6d20cb7 100644
+index f4ac5f16..a25a4bbc 100644
--- a/lib/bpf.c
+++ b/lib/bpf.c
-@@ -771,7 +771,7 @@ static const char *bpf_get_work_dir(enum bpf_prog_type type)
+@@ -813,7 +813,7 @@ static const char *bpf_get_work_dir(enum bpf_prog_type type)
mnt = bpf_find_mntpt("bpf", BPF_FS_MAGIC, bpf_tmp,
sizeof(bpf_tmp), bpf_known_mnts);
if (!mnt) {
@@ -108,10 +108,10 @@ index 21a87b7c..e0af2179 100644
return hz;
return HZ;
diff --git a/misc/ss.c b/misc/ss.c
-index 3a3a61ec..725ad915 100644
+index 769a34f2..1bcee138 100644
--- a/misc/ss.c
+++ b/misc/ss.c
-@@ -480,7 +480,9 @@ static FILE *generic_proc_open(const char *env, const char *name)
+@@ -482,7 +482,9 @@ static FILE *generic_proc_open(const char *env, const char *name)
char store[128];
if (!p) {
@@ -122,7 +122,7 @@ index 3a3a61ec..725ad915 100644
snprintf(store, sizeof(store)-1, "%s/%s", p, name);
p = store;
}
-@@ -572,7 +574,7 @@ static void user_ent_destroy(void)
+@@ -574,7 +576,7 @@ static void user_ent_destroy(void)
static void user_ent_hash_build(void)
{
@@ -131,7 +131,7 @@ index 3a3a61ec..725ad915 100644
struct dirent *d;
char name[1024];
int nameoff;
-@@ -582,6 +584,10 @@ static void user_ent_hash_build(void)
+@@ -584,6 +586,10 @@ static void user_ent_hash_build(void)
const char *no_ctx = "unavailable";
static int user_ent_hash_build_init;
@@ -142,7 +142,7 @@ index 3a3a61ec..725ad915 100644
/* If show_users & show_proc_ctx set only do this once */
if (user_ent_hash_build_init != 0)
return;
-@@ -2187,7 +2193,10 @@ void *parse_hostcond(char *addr, bool is_port)
+@@ -2189,7 +2195,10 @@ void *parse_hostcond(char *addr, bool is_port)
} else if (addr[0] == '*') {
port = addr+1;
} else {
@@ -154,7 +154,7 @@ index 3a3a61ec..725ad915 100644
}
if (is_port)
-@@ -3621,9 +3630,9 @@ static void unix_stats_print(struct sockstat *s, struct filter *f)
+@@ -3623,9 +3632,9 @@ static void unix_stats_print(struct sockstat *s, struct filter *f)
sock_state_print(s);
@@ -166,7 +166,7 @@ index 3a3a61ec..725ad915 100644
int_to_str(s->rport, port_name), NULL);
proc_ctx_print(s);
-@@ -3826,7 +3835,7 @@ static int unix_show(struct filter *f)
+@@ -3828,7 +3837,7 @@ static int unix_show(struct filter *f)
if (!p)
u->peer_name = "?";
else
@@ -175,7 +175,7 @@ index 3a3a61ec..725ad915 100644
}
if (f->f) {
-@@ -4310,9 +4319,10 @@ static int netlink_show_one(struct filter *f,
+@@ -4312,9 +4321,10 @@ static int netlink_show_one(struct filter *f,
strncpy(procname, "kernel", 7);
} else if (pid > 0) {
FILE *fp;
@@ -187,7 +187,7 @@ index 3a3a61ec..725ad915 100644
if ((fp = fopen(procname, "r")) != NULL) {
if (fscanf(fp, "%*d (%[^)])", procname) == 1) {
snprintf(procname+strlen(procname),
-@@ -4355,7 +4365,7 @@ static int netlink_show_one(struct filter *f,
+@@ -4357,7 +4367,7 @@ static int netlink_show_one(struct filter *f,
else if (pid > 0)
getpidcon(pid, &pid_context);
@@ -197,5 +197,5 @@ index 3a3a61ec..725ad915 100644
}
--
-2.23.0
+2.24.0
diff --git a/pkg/iproute2/ver b/pkg/iproute2/ver
@@ -1 +1 @@
-5.3.0 r0
+5.4.0 r0