logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: 594971b59caa1d75f0179de8d612375f410a7566
parent 01eb93d6f752c2bb3815bb794572231651f105fa
Author: Michael Forney <mforney@mforney.org>
Date:   Thu, 21 Mar 2024 23:29:18 -0700

Remove obsolete portability patches with C23 and new cproc

Diffstat:

Rpkg/bubblewrap/patch/0003-Break-up-long-string-literal.patch -> pkg/bubblewrap/patch/0002-Break-up-long-string-literal.patch0
Dpkg/bubblewrap/patch/0002-utils-Avoid-empty-initializer-lists.patch34----------------------------------
Rpkg/bubblewrap/patch/0004-Avoid-statement-expressions-for-TEMP_FAILURE_RETRY.patch -> pkg/bubblewrap/patch/0003-Avoid-statement-expressions-for-TEMP_FAILURE_RETRY.patch0
Rpkg/bubblewrap/patch/0005-Use-external-string-to-cap-function.patch -> pkg/bubblewrap/patch/0004-Use-external-string-to-cap-function.patch0
Mpkg/bubblewrap/ver2+-
Mpkg/fuse/gen.lua2+-
Rpkg/fuse/patch/0003-Fix-build-without-symbol-versioning.patch -> pkg/fuse/patch/0002-Fix-build-without-symbol-versioning.patch0
Dpkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch26--------------------------
Rpkg/fuse/patch/0004-Avoid-invalid-use-of-flexible-array-members.patch -> pkg/fuse/patch/0003-Avoid-invalid-use-of-flexible-array-members.patch0
Rpkg/fuse/patch/0005-Prevent-unused-label-warning-with-IGNORE_MTAB.patch -> pkg/fuse/patch/0004-Prevent-unused-label-warning-with-IGNORE_MTAB.patch0
Rpkg/fuse/patch/0006-Fix-sscanf-format-specifier.patch -> pkg/fuse/patch/0005-Fix-sscanf-format-specifier.patch0
Rpkg/fuse/patch/0007-Avoid-conversion-between-function-and-object-pointer.patch -> pkg/fuse/patch/0006-Avoid-conversion-between-function-and-object-pointer.patch0
Rpkg/fuse/patch/0008-Define-_GNU_SOURCE-for-realpath.patch -> pkg/fuse/patch/0007-Define-_GNU_SOURCE-for-realpath.patch0
Rpkg/fuse/patch/0009-Only-use-symbol-versioning-on-GNU-compatible-compile.patch -> pkg/fuse/patch/0008-Only-use-symbol-versioning-on-GNU-compatible-compile.patch0
Mpkg/fuse/ver2+-
Rpkg/iproute2/patch/0006-Avoid-non-standard-e-escape-sequence.patch -> pkg/iproute2/patch/0005-Avoid-non-standard-e-escape-sequence.patch0
Dpkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch2455-------------------------------------------------------------------------------
Rpkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch -> pkg/iproute2/patch/0006-Remove-semicolon-after-function-definitions.patch0
Rpkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch -> pkg/iproute2/patch/0007-Don-t-omit-second-operand-to-operator.patch0
Rpkg/iproute2/patch/0009-Avoid-unnecessary-VLAs.patch -> pkg/iproute2/patch/0008-Avoid-unnecessary-VLAs.patch0
Rpkg/iproute2/patch/0010-ip-Fix-get_link_kind-when-linked-statically.patch -> pkg/iproute2/patch/0009-ip-Fix-get_link_kind-when-linked-statically.patch0
Rpkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch -> pkg/iproute2/patch/0010-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch0
Rpkg/iproute2/patch/0012-Use-static-inline-function-for-min.patch -> pkg/iproute2/patch/0011-Use-static-inline-function-for-min.patch0
Rpkg/iproute2/patch/0014-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch -> pkg/iproute2/patch/0012-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch0
Rpkg/iproute2/patch/0016-Fix-overflow-check-for-strtod-and-strtoul.patch -> pkg/iproute2/patch/0013-Fix-overflow-check-for-strtod-and-strtoul.patch0
Dpkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch86-------------------------------------------------------------------------------
Rpkg/iproute2/patch/0017-Remove-flexible-array-member-in-embedded-struct.patch -> pkg/iproute2/patch/0014-Remove-flexible-array-member-in-embedded-struct.patch0
Dpkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch32--------------------------------
Mpkg/iproute2/ver2+-
Rpkg/linux-headers/patch/0003-Prevent-zero-length-array-members-in-asound.h.patch -> pkg/linux-headers/patch/0002-Prevent-zero-length-array-members-in-asound.h.patch0
Dpkg/linux-headers/patch/0002-Revert-change-of-BPF_F_-to-enum-constants.patch32--------------------------------
Rpkg/linux-headers/patch/0004-nfc-uapi-remove-stray-semicolon-in-struct-declaratio.patch -> pkg/linux-headers/patch/0003-nfc-uapi-remove-stray-semicolon-in-struct-declaratio.patch0
Mpkg/linux-headers/ver2+-
Rpkg/strace/patch/0003-Make-tcp_sysent-a-static-inline-function.patch -> pkg/strace/patch/0002-Make-tcp_sysent-a-static-inline-function.patch0
Dpkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch349-------------------------------------------------------------------------------
Rpkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch -> pkg/strace/patch/0003-Avoid-pointer-arithmetic-on-void.patch0
Dpkg/strace/patch/0004-Avoid-empty-initializer-lists.patch215-------------------------------------------------------------------------------
Rpkg/strace/patch/0006-Avoid-empty-struct-definition.patch -> pkg/strace/patch/0004-Avoid-empty-struct-definition.patch0
Rpkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch -> pkg/strace/patch/0005-Don-t-omit-second-operand-to-operator.patch0
Rpkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch -> pkg/strace/patch/0006-Avoid-unnecessary-VLAs.patch0
Rpkg/strace/patch/0009-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch -> pkg/strace/patch/0007-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch0
Rpkg/strace/patch/0010-Use-alloca-when-VLAs-aren-t-available.patch -> pkg/strace/patch/0008-Use-alloca-when-VLAs-aren-t-available.patch0
Rpkg/strace/patch/0011-Avoid-index-ranges.patch -> pkg/strace/patch/0009-Avoid-index-ranges.patch0
Mpkg/strace/ver2+-
Rpkg/u-boot/patch/0004-Avoid-pointer-arithmetic-on-void.patch -> pkg/u-boot/patch/0002-Avoid-pointer-arithmetic-on-void.patch0
Dpkg/u-boot/patch/0002-Use-__typeof__-instead-of-typeof.patch27---------------------------
Dpkg/u-boot/patch/0003-Avoid-empty-initializer-lists.patch49-------------------------------------------------
Rpkg/u-boot/patch/0005-Remove-use-of-statement-expressions.patch -> pkg/u-boot/patch/0003-Remove-use-of-statement-expressions.patch0
Rpkg/u-boot/patch/0006-Use-__bswap32-instead-of-__builtin_bswap32.patch -> pkg/u-boot/patch/0004-Use-__bswap32-instead-of-__builtin_bswap32.patch0
Mpkg/u-boot/ver2+-
50 files changed, 7 insertions(+), 3312 deletions(-)

diff --git a/pkg/bubblewrap/patch/0003-Break-up-long-string-literal.patch b/pkg/bubblewrap/patch/0002-Break-up-long-string-literal.patch diff --git a/pkg/bubblewrap/patch/0002-utils-Avoid-empty-initializer-lists.patch b/pkg/bubblewrap/patch/0002-utils-Avoid-empty-initializer-lists.patch @@ -1,34 +0,0 @@ -From 94d4083d5e11206676fc2015ff881141c62ad3a3 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Tue, 4 Jul 2023 10:47:29 -0700 -Subject: [PATCH] utils: Avoid empty initializer lists - ---- - utils.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/utils.c b/utils.c -index 6845283..13d42c7 100644 ---- a/utils.c -+++ b/utils.c -@@ -725,7 +725,7 @@ void - send_pid_on_socket (int socket) - { - char buf[1] = { 0 }; -- struct msghdr msg = {}; -+ struct msghdr msg = { 0 }; - struct iovec iov = { buf, sizeof (buf) }; - char control_buf_snd[CMSG_SPACE(sizeof(struct ucred))]; - struct cmsghdr *cmsg; -@@ -766,7 +766,7 @@ int - read_pid_from_socket (int socket) - { - char recv_buf[1] = { 0 }; -- struct msghdr msg = {}; -+ struct msghdr msg = { 0 }; - struct iovec iov = { recv_buf, sizeof (recv_buf) }; - char control_buf_rcv[CMSG_SPACE(sizeof(struct ucred))]; - struct cmsghdr* cmsg; --- -2.37.3 - diff --git a/pkg/bubblewrap/patch/0004-Avoid-statement-expressions-for-TEMP_FAILURE_RETRY.patch b/pkg/bubblewrap/patch/0003-Avoid-statement-expressions-for-TEMP_FAILURE_RETRY.patch diff --git a/pkg/bubblewrap/patch/0005-Use-external-string-to-cap-function.patch b/pkg/bubblewrap/patch/0004-Use-external-string-to-cap-function.patch diff --git a/pkg/bubblewrap/ver b/pkg/bubblewrap/ver @@ -1 +1 @@ -0.8.0 r0 +0.8.0 r1 diff --git a/pkg/fuse/gen.lua b/pkg/fuse/gen.lua @@ -1,5 +1,5 @@ cflags{ - '-std=c11', '-Wall', '-Wpedantic', + '-std=gnu11', '-Wall', '-Wpedantic', '-Wno-overflow', -- ioctl opcode conversion '-D _POSIX_C_SOURCE=200809L', '-I $dir', diff --git a/pkg/fuse/patch/0003-Fix-build-without-symbol-versioning.patch b/pkg/fuse/patch/0002-Fix-build-without-symbol-versioning.patch diff --git a/pkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch b/pkg/fuse/patch/0002-Use-__typeof__-instead-of-typeof.patch @@ -1,26 +0,0 @@ -From ad9777cc43ac13f591a08fd7a222efd89009a18d Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Mon, 1 Jul 2019 22:45:12 -0700 -Subject: [PATCH] Use __typeof__ instead of typeof - -typeof might not be available if built with ISO C mode. ---- - util/fusermount.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/fusermount.c b/util/fusermount.c -index ed62ea9..c497891 100644 ---- a/util/fusermount.c -+++ b/util/fusermount.c -@@ -992,7 +992,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *mountpoint_fd) - * (https://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/view/head:/src/utils/mount.ecryptfs_private.c#L225) - * but got expanded as we found more filesystems that needed to be - * overlayed. */ -- typeof(fs_buf.f_type) f_type_whitelist[] = { -+ __typeof__(fs_buf.f_type) f_type_whitelist[] = { - 0x61756673 /* AUFS_SUPER_MAGIC */, - 0x00000187 /* AUTOFS_SUPER_MAGIC */, - 0xCA451A4E /* BCACHEFS_STATFS_MAGIC */, --- -2.32.0 - diff --git a/pkg/fuse/patch/0004-Avoid-invalid-use-of-flexible-array-members.patch b/pkg/fuse/patch/0003-Avoid-invalid-use-of-flexible-array-members.patch diff --git a/pkg/fuse/patch/0005-Prevent-unused-label-warning-with-IGNORE_MTAB.patch b/pkg/fuse/patch/0004-Prevent-unused-label-warning-with-IGNORE_MTAB.patch diff --git a/pkg/fuse/patch/0006-Fix-sscanf-format-specifier.patch b/pkg/fuse/patch/0005-Fix-sscanf-format-specifier.patch diff --git a/pkg/fuse/patch/0007-Avoid-conversion-between-function-and-object-pointer.patch b/pkg/fuse/patch/0006-Avoid-conversion-between-function-and-object-pointer.patch diff --git a/pkg/fuse/patch/0008-Define-_GNU_SOURCE-for-realpath.patch b/pkg/fuse/patch/0007-Define-_GNU_SOURCE-for-realpath.patch diff --git a/pkg/fuse/patch/0009-Only-use-symbol-versioning-on-GNU-compatible-compile.patch b/pkg/fuse/patch/0008-Only-use-symbol-versioning-on-GNU-compatible-compile.patch diff --git a/pkg/fuse/ver b/pkg/fuse/ver @@ -1 +1 @@ -3.10.5 r1 +3.10.5 r2 diff --git a/pkg/iproute2/patch/0006-Avoid-non-standard-e-escape-sequence.patch b/pkg/iproute2/patch/0005-Avoid-non-standard-e-escape-sequence.patch diff --git a/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch b/pkg/iproute2/patch/0005-Don-t-use-empty-initializer-lists.patch @@ -1,2455 +0,0 @@ -From af3a2d4ed7e7bb4dcf9ec448c017d1e9824b3d1e Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Thu, 17 Feb 2022 22:51:00 -0800 -Subject: [PATCH] Don't use empty initializer lists - ---- - bridge/mdb.c | 2 +- - bridge/vlan.c | 6 +-- - devlink/devlink.c | 94 +++++++++++++++++++++++------------------------ - devlink/mnlg.c | 4 +- - ip/ip6tunnel.c | 2 +- - ip/ipaddress.c | 8 ++-- - ip/ipaddrlabel.c | 2 +- - ip/iplink_can.c | 2 +- - ip/ipmaddr.c | 2 +- - ip/ipntable.c | 4 +- - ip/iptunnel.c | 10 ++--- - ip/iptuntap.c | 2 +- - ip/ipxfrm.c | 14 +++---- - ip/xfrm_policy.c | 14 +++---- - ip/xfrm_state.c | 12 +++--- - lib/bpf_legacy.c | 40 ++++++++++---------- - lib/libnetlink.c | 8 ++-- - lib/ll_map.c | 2 +- - lib/rt_names.c | 3 +- - misc/arpd.c | 4 +- - misc/ss.c | 38 +++++++++---------- - rdma/dev.c | 2 +- - rdma/link.c | 2 +- - rdma/rdma.c | 2 +- - rdma/res-cmid.c | 6 +-- - rdma/res-cq.c | 6 +-- - rdma/res-mr.c | 6 +-- - rdma/res-pd.c | 6 +-- - rdma/res-qp.c | 6 +-- - rdma/res.c | 4 +- - rdma/utils.c | 2 +- - tc/e_bpf.c | 4 +- - tc/em_cmp.c | 2 +- - tc/em_ipset.c | 2 +- - tc/em_meta.c | 2 +- - tc/em_nbyte.c | 2 +- - tc/em_u32.c | 2 +- - tc/f_bpf.c | 2 +- - tc/f_fw.c | 2 +- - tc/f_u32.c | 6 +-- - tc/m_bpf.c | 4 +- - tc/m_connmark.c | 2 +- - tc/m_csum.c | 2 +- - tc/m_mirred.c | 4 +- - tc/m_nat.c | 2 +- - tc/m_pedit.c | 4 +- - tc/m_simple.c | 2 +- - tc/m_tunnel_key.c | 2 +- - tc/m_vlan.c | 2 +- - tc/q_cbs.c | 2 +- - tc/q_choke.c | 2 +- - tc/q_codel.c | 2 +- - tc/q_fifo.c | 2 +- - tc/q_fq_codel.c | 2 +- - tc/q_gred.c | 6 +-- - tc/q_hfsc.c | 4 +- - tc/q_htb.c | 2 +- - tc/q_multiq.c | 2 +- - tc/q_netem.c | 12 +++--- - tc/q_red.c | 2 +- - tc/q_sfq.c | 2 +- - tc/q_skbprio.c | 2 +- - tc/q_tbf.c | 2 +- - tc/tc_class.c | 18 ++++----- - tc/tc_exec.c | 2 +- - tc/tc_filter.c | 12 +++--- - tc/tc_qdisc.c | 10 ++--- - tc/tc_stab.c | 2 +- - tc/tc_util.c | 6 +-- - tipc/bearer.c | 22 +++++------ - tipc/link.c | 34 ++++++++--------- - tipc/media.c | 10 ++--- - tipc/misc.c | 2 +- - tipc/nametable.c | 6 +-- - tipc/node.c | 14 +++---- - tipc/socket.c | 10 ++--- - 76 files changed, 277 insertions(+), 278 deletions(-) - -diff --git a/bridge/mdb.c b/bridge/mdb.c -index ba499e49..63302110 100644 ---- a/bridge/mdb.c -+++ b/bridge/mdb.c -@@ -702,7 +702,7 @@ static int mdb_modify(int cmd, int flags, int argc, char **argv) - char *d = NULL, *p = NULL, *grp = NULL, *src = NULL, *mode = NULL; - char *dst_port = NULL, *vni = NULL, *src_vni = NULL, *via = NULL; - char *src_list = NULL, *proto = NULL, *dst = NULL; -- struct br_mdb_entry entry = {}; -+ struct br_mdb_entry entry = {0}; - bool set_attrs = false; - short vid = 0; - -diff --git a/bridge/vlan.c b/bridge/vlan.c -index a5035ab1..22e4554a 100644 ---- a/bridge/vlan.c -+++ b/bridge/vlan.c -@@ -128,7 +128,7 @@ static int add_tunnel_info_range(struct nlmsghdr *n, int reqsize, - static int add_vlan_info_range(struct nlmsghdr *n, int reqsize, __u16 vid_start, - int16_t vid_end, __u16 flags) - { -- struct bridge_vlan_info vinfo = {}; -+ struct bridge_vlan_info vinfo = {0}; - - vinfo.flags = flags; - vinfo.vid = vid_start; -@@ -167,7 +167,7 @@ static int vlan_modify(int cmd, int argc, char **argv) - short vid = -1; - short vid_end = -1; - struct rtattr *afspec; -- struct bridge_vlan_info vinfo = {}; -+ struct bridge_vlan_info vinfo = {0}; - bool tunnel_info_set = false; - unsigned short flags = 0; - __u32 tun_id_start = 0; -@@ -273,7 +273,7 @@ static int vlan_option_set(int argc, char **argv) - .n.nlmsg_type = RTM_NEWVLAN, - .bvm.family = PF_BRIDGE, - }; -- struct bridge_vlan_info vinfo = {}; -+ struct bridge_vlan_info vinfo = {0}; - struct rtattr *afspec; - char *d = NULL; - short vid = -1; -diff --git a/devlink/devlink.c b/devlink/devlink.c -index dbeb6e39..10803c1c 100644 ---- a/devlink/devlink.c -+++ b/devlink/devlink.c -@@ -890,7 +890,7 @@ out: - - static int ifname_map_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - struct dl *dl = data; - const char *bus_name; -@@ -3201,7 +3201,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -3372,7 +3372,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) - { -- struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *val_attr; - const char *vstr; - bool conv_exists; -@@ -3455,7 +3455,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, - bool is_port_param) - { -- struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *param_value_attr; - const char *nla_name; - int nla_type; -@@ -3507,7 +3507,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); -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct dl *dl = data; - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -3534,8 +3534,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); -- struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {}; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_param[DEVLINK_ATTR_MAX + 1] = {0}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *param_value_attr; - enum devlink_param_cmode cmode; - struct param_ctx *ctx = data; -@@ -3559,7 +3559,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]) { -- struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_value[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *val_attr; - - err = mnl_attr_parse_nested(param_value_attr, -@@ -3602,7 +3602,7 @@ static int cmd_dev_param_set_cb(const struct nlmsghdr *nlh, void *data) - - static int cmd_dev_param_set(struct dl *dl) - { -- struct param_ctx ctx = {}; -+ struct param_ctx ctx = {0}; - struct nlmsghdr *nlh; - bool conv_exists; - uint32_t val_u32 = 0; -@@ -3774,7 +3774,7 @@ static int cmd_dev_param(struct dl *dl) - - static void pr_out_action_stats(struct dl *dl, struct nlattr *action_stats) - { -- struct nlattr *tb_stats_entry[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb_stats_entry[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *nla_reload_stats_entry, *nla_limit, *nla_value; - enum devlink_reload_limit limit; - uint32_t value; -@@ -4015,7 +4015,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)) { -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - const char *ver_value; - const char *ver_name; - int err; -@@ -4105,7 +4105,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); -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - bool has_versions, has_info; - struct dl *dl = data; - -@@ -4958,7 +4958,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -5896,7 +5896,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -5974,7 +5974,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -6061,7 +6061,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -6165,7 +6165,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -6456,7 +6456,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -6507,7 +6507,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -6815,7 +6815,7 @@ static void pr_out_trap_policer(struct dl *dl, struct nlattr **tb, bool array); - static int cmd_mon_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 cmd = genl->cmd; - -@@ -7358,7 +7358,7 @@ static void pr_out_dpipe_headers(struct dpipe_ctx *ctx, - - static int dpipe_header_field_get(struct nlattr *nl, struct dpipe_field *field) - { -- struct nlattr *nla_field[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_field[DEVLINK_ATTR_MAX + 1] = {0}; - const char *name; - int err; - -@@ -7409,7 +7409,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) - { -- struct nlattr *nla_header[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_header[DEVLINK_ATTR_MAX + 1] = {0}; - struct dpipe_header *header; - unsigned int fields_count; - const char *header_name; -@@ -7465,7 +7465,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - int err; - -@@ -7487,7 +7487,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; -- struct dpipe_ctx ctx = {}; -+ struct dpipe_ctx ctx = {0}; - uint16_t flags = NLM_F_REQUEST | NLM_F_ACK; - int err; - -@@ -7584,7 +7584,7 @@ static void pr_out_dpipe_action(struct dpipe_action *action, - - static int dpipe_action_parse(struct dpipe_action *action, struct nlattr *nl) - { -- struct nlattr *nla_action[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_action[DEVLINK_ATTR_MAX + 1] = {0}; - int err; - - err = mnl_attr_parse_nested(nl, attr_cb, nla_action); -@@ -7669,7 +7669,7 @@ static int dpipe_match_parse(struct dpipe_match *match, - struct nlattr *nl) - - { -- struct nlattr *nla_match[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_match[DEVLINK_ATTR_MAX + 1] = {0}; - int err; - - err = mnl_attr_parse_nested(nl, attr_cb, nla_match); -@@ -7774,7 +7774,7 @@ resource_path_print(struct dl *dl, struct resources *resources, - - static int dpipe_table_show(struct dpipe_ctx *ctx, struct nlattr *nl) - { -- struct nlattr *nla_table[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_table[DEVLINK_ATTR_MAX + 1] = {0}; - struct dpipe_table *table; - uint32_t resource_units; - bool counters_enabled; -@@ -7868,7 +7868,7 @@ err_table_show: - static int cmd_dpipe_table_show_cb(const struct nlmsghdr *nlh, void *data) - { - struct dpipe_ctx *ctx = data; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -7886,8 +7886,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; -- struct dpipe_ctx dpipe_ctx = {}; -- struct resource_ctx resource_ctx = {}; -+ struct dpipe_ctx dpipe_ctx = {0}; -+ struct resource_ctx resource_ctx = {0}; - uint16_t flags = NLM_F_REQUEST; - int err; - -@@ -8145,7 +8145,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) - { -- struct nlattr *nla_match_value[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_match_value[DEVLINK_ATTR_MAX + 1] = {0}; - struct dpipe_match match; - int err; - -@@ -8176,7 +8176,7 @@ err_match_parse: - static int dpipe_entry_action_value_show(struct dpipe_ctx *ctx, - struct nlattr *nl) - { -- struct nlattr *nla_action_value[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_action_value[DEVLINK_ATTR_MAX + 1] = {0}; - struct dpipe_action action; - int err; - -@@ -8232,7 +8232,7 @@ dpipe_tables_match_values_show(struct dpipe_ctx *ctx, - - static int dpipe_entry_show(struct dpipe_ctx *ctx, struct nlattr *nl) - { -- struct nlattr *nla_entry[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_entry[DEVLINK_ATTR_MAX + 1] = {0}; - uint32_t entry_index; - uint64_t counter; - int err; -@@ -8296,7 +8296,7 @@ err_entry_show: - static int cmd_dpipe_table_entry_dump_cb(const struct nlmsghdr *nlh, void *data) - { - struct dpipe_ctx *ctx = data; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -8312,7 +8312,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; -- struct dpipe_ctx ctx = {}; -+ struct dpipe_ctx ctx = {0}; - uint16_t flags = NLM_F_REQUEST; - int err; - -@@ -8421,7 +8421,7 @@ static int - resource_get(struct resource_ctx *ctx, struct resource *resource, - struct resource *parent_resource, struct nlattr *nl) - { -- struct nlattr *nla_resource[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *nla_resource[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *nla_child_resource; - struct nlattr *nla_resources; - bool top = false; -@@ -8569,7 +8569,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; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - int err; - -@@ -8593,8 +8593,8 @@ static int cmd_resource_dump_cb(const struct nlmsghdr *nlh, void *data) - static int cmd_resource_show(struct dl *dl) - { - struct nlmsghdr *nlh; -- struct dpipe_ctx dpipe_ctx = {}; -- struct resource_ctx resource_ctx = {}; -+ struct dpipe_ctx dpipe_ctx = {0}; -+ struct resource_ctx resource_ctx = {0}; - int err; - - err = dl_argv_parse(dl, DL_OPT_HANDLE, 0); -@@ -8689,7 +8689,7 @@ err_resource_lookup: - static int cmd_resource_set(struct dl *dl) - { - struct nlmsghdr *nlh; -- struct resource_ctx ctx = {}; -+ struct resource_ctx ctx = {0}; - int err; - - err = resource_ctx_init(&ctx, dl); -@@ -8801,7 +8801,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) - { -- struct nlattr *tb_snapshot[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb_snapshot[DEVLINK_ATTR_MAX + 1] = {0}; - struct nlattr *nla_sanpshot; - int err, index = 0; - -@@ -8846,7 +8846,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); -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct dl *dl = data; - - mnl_attr_parse(nlh, sizeof(*genl), attr_cb, tb); -@@ -8903,8 +8903,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); -- struct nlattr *tb_field[DEVLINK_ATTR_MAX + 1] = {}; -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb_field[DEVLINK_ATTR_MAX + 1] = {0}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct dl *dl = data; - int err; - -@@ -9266,7 +9266,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); -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct fmsg_cb_data *fmsg_data = data; - struct dl *dl = fmsg_data->dl; - struct nlattr *nla_object; -@@ -9461,7 +9461,7 @@ static void pr_out_dump_report_timestamp(struct dl *dl, const struct nlattr *att - static void pr_out_health(struct dl *dl, struct nlattr **tb_health, - bool print_device, bool print_port) - { -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - enum devlink_health_reporter_state state; - int err; - -@@ -9532,7 +9532,7 @@ struct health_ctx { - static int cmd_health_show_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[DEVLINK_ATTR_MAX + 1] = {0}; - struct health_ctx *ctx = data; - struct dl *dl = ctx->dl; - -diff --git a/devlink/mnlg.c b/devlink/mnlg.c -index d049eb5a..c9782a7b 100644 ---- a/devlink/mnlg.c -+++ b/devlink/mnlg.c -@@ -58,7 +58,7 @@ static void parse_genl_mc_grps(struct nlattr *nested, - const char *name; - - mnl_attr_for_each_nested(pos, nested) { -- struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1] = {}; -+ struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1] = {0}; - - mnl_attr_parse_nested(pos, parse_mc_grps_cb, tb); - if (!tb[CTRL_ATTR_MCAST_GRP_NAME] || -@@ -92,7 +92,7 @@ static int get_group_id_attr_cb(const struct nlattr *attr, void *data) - static int get_group_id_cb(const struct nlmsghdr *nlh, void *data) - { - struct group_info *group_info = data; -- struct nlattr *tb[CTRL_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[CTRL_ATTR_MAX + 1] = {0}; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); - - mnl_attr_parse(nlh, sizeof(*genl), get_group_id_attr_cb, tb); -diff --git a/ip/ip6tunnel.c b/ip/ip6tunnel.c -index 5e55e3ea..f74eb9b1 100644 ---- a/ip/ip6tunnel.c -+++ b/ip/ip6tunnel.c -@@ -273,7 +273,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) { -- struct ip6_tnl_parm2 old_p = {}; -+ struct ip6_tnl_parm2 old_p = {0}; - - if (tnl_get_ioctl(*argv, &old_p)) - return -1; -diff --git a/ip/ipaddress.c b/ip/ipaddress.c -index e536912f..9f062217 100644 ---- a/ip/ipaddress.c -+++ b/ip/ipaddress.c -@@ -164,7 +164,7 @@ static void print_queuelen(FILE *f, struct rtattr *tb[IFLA_MAX + 1]) - if (tb[IFLA_TXQLEN]) - qlen = rta_getattr_u32(tb[IFLA_TXQLEN]); - else { -- struct ifreq ifr = {}; -+ struct ifreq ifr = {0}; - int s = socket(AF_INET, SOCK_STREAM, 0); - - if (s < 0) -@@ -352,7 +352,7 @@ static void print_vfinfo(FILE *fp, struct ifinfomsg *ifi, struct rtattr *vfinfo) - struct ifla_vf_mac *vf_mac; - struct ifla_vf_broadcast *vf_broadcast; - struct ifla_vf_tx_rate *vf_tx_rate; -- struct rtattr *vf[IFLA_VF_MAX + 1] = {}; -+ struct rtattr *vf[IFLA_VF_MAX + 1] = {0}; - - SPRINT_BUF(b1); - -@@ -2444,7 +2444,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv) - char *lcl_arg = NULL; - char *valid_lftp = NULL; - char *preferred_lftp = NULL; -- inet_prefix lcl = {}; -+ inet_prefix lcl = {0}; - inet_prefix peer; - int local_len = 0; - int peer_len = 0; -@@ -2621,7 +2621,7 @@ static int ipaddr_modify(int cmd, int flags, int argc, char **argv) - return nodev(d); - - if (valid_lftp || preferred_lftp) { -- struct ifa_cacheinfo cinfo = {}; -+ struct ifa_cacheinfo cinfo = {0}; - - if (!valid_lft) { - fprintf(stderr, "valid_lft is zero\n"); -diff --git a/ip/ipaddrlabel.c b/ip/ipaddrlabel.c -index b045827a..1d398524 100644 ---- a/ip/ipaddrlabel.c -+++ b/ip/ipaddrlabel.c -@@ -135,7 +135,7 @@ static int ipaddrlabel_modify(int cmd, int argc, char **argv) - .ifal.ifal_family = preferred_family, - }; - -- inet_prefix prefix = {}; -+ inet_prefix prefix = {0}; - uint32_t label = 0xffffffffUL; - char *p = NULL; - char *l = NULL; -diff --git a/ip/iplink_can.c b/ip/iplink_can.c -index f2967db5..07309495 100644 ---- a/ip/iplink_can.c -+++ b/ip/iplink_can.c -@@ -126,7 +126,7 @@ static void print_ctrlmode(enum output_type t, __u32 flags, const char* key) - static int can_parse_opt(struct link_util *lu, int argc, char **argv, - struct nlmsghdr *n) - { -- struct can_bittiming bt = {}, dbt = {}; -+ struct can_bittiming bt = {0}, dbt = {0}; - struct can_ctrlmode cm = { 0 }; - struct rtattr *tdc; - __u32 tdcv = -1, tdco = -1, tdcf = -1; -diff --git a/ip/ipmaddr.c b/ip/ipmaddr.c -index 3e7afa91..c059e2c7 100644 ---- a/ip/ipmaddr.c -+++ b/ip/ipmaddr.c -@@ -302,7 +302,7 @@ static int multiaddr_list(int argc, char **argv) - - static int multiaddr_modify(int cmd, int argc, char **argv) - { -- struct ifreq ifr = {}; -+ struct ifreq ifr = {0}; - int family; - int fd, len; - -diff --git a/ip/ipntable.c b/ip/ipntable.c -index 4ce02a31..11794ce8 100644 ---- a/ip/ipntable.c -+++ b/ip/ipntable.c -@@ -62,7 +62,7 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv) - char *namep = NULL; - char *threshsp = NULL; - char *gc_intp = NULL; -- char parms_buf[1024] = {}; -+ char parms_buf[1024] = {0}; - struct rtattr *parms_rta = (struct rtattr *)parms_buf; - int parms_change = 0; - -@@ -298,7 +298,7 @@ static int ipntable_modify(int cmd, int flags, int argc, char **argv) - static const char *ntable_strtime_delta(__u32 msec) - { - static char str[32]; -- struct timeval now = {}; -+ struct timeval now = {0}; - time_t t; - struct tm *tp; - -diff --git a/ip/iptunnel.c b/ip/iptunnel.c -index b6da1459..46c5f894 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) - union { - struct ip_tunnel_parm ip_tnl; - struct ip6_tnl_parm2 ip6_tnl; -- } old_p = {}; -+ } old_p = {0}; - - if (tnl_get_ioctl(*argv, &old_p)) - return -1; -@@ -294,7 +294,7 @@ static int do_del(int argc, char **argv) - static void print_tunnel(const void *t) - { - const struct ip_tunnel_parm *p = t; -- struct ip_tunnel_6rd ip6rd = {}; -+ struct ip_tunnel_6rd ip6rd = {0}; - SPRINT_BUF(b1); - - /* Do not use format_host() for local addr, -@@ -316,7 +316,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] = {}; -+ struct ip_tunnel_prl prl[16] = {0}; - int i; - - prl[0].datalen = sizeof(prl) - sizeof(prl[0]); -@@ -439,7 +439,7 @@ static int do_show(int argc, char **argv) - - static int do_prl(int argc, char **argv) - { -- struct ip_tunnel_prl p = {}; -+ struct ip_tunnel_prl p = {0}; - int count = 0; - int cmd = 0; - const char *medium = NULL; -@@ -488,7 +488,7 @@ static int do_prl(int argc, char **argv) - - static int do_6rd(int argc, char **argv) - { -- struct ip_tunnel_6rd ip6rd = {}; -+ struct ip_tunnel_6rd ip6rd = {0}; - int cmd = 0; - const char *medium = NULL; - inet_prefix prefix; -diff --git a/ip/iptuntap.c b/ip/iptuntap.c -index 0b63f53d..3cf55055 100644 ---- a/ip/iptuntap.c -+++ b/ip/iptuntap.c -@@ -257,7 +257,7 @@ static void print_flags(long flags) - - static void show_processes(const char *name) - { -- glob_t globbuf = { }; -+ glob_t globbuf = {0}; - char **fd_path; - int err; - -diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c -index c3a5986f..7b78712f 100644 ---- a/ip/ipxfrm.c -+++ b/ip/ipxfrm.c -@@ -908,7 +908,7 @@ void xfrm_xfrma_print(struct rtattr *tb[], __u16 family, FILE *fp, - - static int xfrm_selector_iszero(struct xfrm_selector *s) - { -- struct xfrm_selector s0 = {}; -+ struct xfrm_selector s0 = {0}; - - return (memcmp(&s0, s, sizeof(s0)) == 0); - } -@@ -930,7 +930,7 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo, - struct rtattr *tb[], FILE *fp, const char *prefix, - const char *title, bool nokeys) - { -- char buf[STRBUF_SIZE] = {}; -+ char buf[STRBUF_SIZE] = {0}; - int force_spi = xfrm_xfrmproto_is_ipsec(xsinfo->id.proto); - - xfrm_id_info_print(&xsinfo->saddr, &xsinfo->id, xsinfo->mode, -@@ -1001,7 +1001,7 @@ void xfrm_policy_info_print(struct xfrm_userpolicy_info *xpinfo, - struct rtattr *tb[], FILE *fp, const char *prefix, - const char *title) - { -- char buf[STRBUF_SIZE] = {}; -+ char buf[STRBUF_SIZE] = {0}; - - xfrm_selector_print(&xpinfo->sel, preferred_family, fp, title); - -@@ -1091,8 +1091,8 @@ int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family, - { - int argc = *argcp; - char **argv = *argvp; -- inet_prefix dst = {}; -- inet_prefix src = {}; -+ inet_prefix dst = {0}; -+ inet_prefix src = {0}; - - while (1) { - if (strcmp(*argv, "src") == 0) { -@@ -1399,8 +1399,8 @@ int xfrm_selector_parse(struct xfrm_selector *sel, int *argcp, char ***argvp) - { - int argc = *argcp; - char **argv = *argvp; -- inet_prefix dst = {}; -- inet_prefix src = {}; -+ inet_prefix dst = {0}; -+ inet_prefix src = {0}; - char *upspecp = NULL; - - while (1) { -diff --git a/ip/xfrm_policy.c b/ip/xfrm_policy.c -index 8687ced3..161cec66 100644 ---- a/ip/xfrm_policy.c -+++ b/ip/xfrm_policy.c -@@ -244,15 +244,15 @@ static int xfrm_policy_modify(int cmd, unsigned int flags, int argc, char **argv - char *selp = NULL; - char *ptypep = NULL; - char *sctxp = NULL; -- struct xfrm_userpolicy_type upt = {}; -- struct xfrm_user_offload xuo = {}; -- char tmpls_buf[XFRM_TMPLS_BUF_SIZE] = {}; -+ struct xfrm_userpolicy_type upt = {0}; -+ struct xfrm_user_offload xuo = {0}; -+ char tmpls_buf[XFRM_TMPLS_BUF_SIZE] = {0}; - int tmpls_len = 0; - struct xfrm_mark mark = {0, 0}; - struct { - struct xfrm_user_sec_ctx sctx; - char str[CTX_BUF_SIZE]; -- } ctx = {}; -+ } ctx = {0}; - bool is_if_id_set = false; - unsigned int ifindex = 0; - bool is_offload = false; -@@ -589,12 +589,12 @@ static int xfrm_policy_get_or_delete(int argc, char **argv, int delete, - char *indexp = NULL; - char *ptypep = NULL; - char *sctxp = NULL; -- struct xfrm_userpolicy_type upt = {}; -+ struct xfrm_userpolicy_type upt = {0}; - struct xfrm_mark mark = {0, 0}; - struct { - struct xfrm_user_sec_ctx sctx; - char str[CTX_BUF_SIZE]; -- } ctx = {}; -+ } ctx = {0}; - bool is_if_id_set = false; - __u32 if_id = 0; - -@@ -1276,7 +1276,7 @@ static int xfrm_policy_flush(int argc, char **argv) - .n.nlmsg_type = XFRM_MSG_FLUSHPOLICY, - }; - char *ptypep = NULL; -- struct xfrm_userpolicy_type upt = {}; -+ struct xfrm_userpolicy_type upt = {0}; - - while (argc > 0) { - if (strcmp(*argv, "ptype") == 0) { -diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c -index 9be65b2f..6e141335 100644 ---- a/ip/xfrm_state.c -+++ b/ip/xfrm_state.c -@@ -286,9 +286,9 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv) - .xsinfo.lft.soft_packet_limit = XFRM_INF, - .xsinfo.lft.hard_packet_limit = XFRM_INF, - }; -- struct xfrm_replay_state replay = {}; -- struct xfrm_replay_state_esn replay_esn = {}; -- struct xfrm_user_offload xuo = {}; -+ struct xfrm_replay_state replay = {0}; -+ struct xfrm_replay_state_esn replay_esn = {0}; -+ struct xfrm_user_offload xuo = {0}; - unsigned int ifindex = 0; - __u8 dir = 0; - bool is_offload = false, is_packet_offload = false; -@@ -306,7 +306,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv) - struct { - struct xfrm_user_sec_ctx sctx; - char str[CTX_BUF_SIZE]; -- } ctx = {}; -+ } ctx = {0}; - struct xfrm_mark output_mark = {0, 0}; - bool is_if_id_set = false; - __u32 if_id = 0; -@@ -376,7 +376,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv) - (void *)&encap, sizeof(encap)); - } else if (strcmp(*argv, "coa") == 0) { - inet_prefix coa; -- xfrm_address_t xcoa = {}; -+ xfrm_address_t xcoa = {0}; - - if (coap) - duparg("coa", *argv); -@@ -481,7 +481,7 @@ static int xfrm_state_modify(int cmd, unsigned int flags, int argc, char **argv) - struct xfrm_algo_auth auth; - } u; - char buf[XFRM_ALGO_KEY_BUF_SIZE]; -- } alg = {}; -+ } alg = {0}; - int len; - __u32 icvlen, trunclen; - char *name; -diff --git a/lib/bpf_legacy.c b/lib/bpf_legacy.c -index c8da4a3e..253e8240 100644 ---- a/lib/bpf_legacy.c -+++ b/lib/bpf_legacy.c -@@ -133,7 +133,7 @@ static inline __u64 bpf_ptr_to_u64(const void *ptr) - static int bpf_map_update(int fd, const void *key, const void *value, - uint64_t flags) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.map_fd = fd; - attr.key = bpf_ptr_to_u64(key); -@@ -145,7 +145,7 @@ static int bpf_map_update(int fd, const void *key, const void *value, - - static int bpf_prog_fd_by_id(uint32_t id) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.prog_id = id; - -@@ -155,7 +155,7 @@ static int bpf_prog_fd_by_id(uint32_t id) - static int bpf_prog_info_by_fd(int fd, struct bpf_prog_info *info, - uint32_t *info_len) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - int ret; - - attr.info.bpf_fd = fd; -@@ -172,7 +172,7 @@ static int bpf_prog_info_by_fd(int fd, struct bpf_prog_info *info, - - int bpf_dump_prog_info(FILE *f, uint32_t id) - { -- struct bpf_prog_info info = {}; -+ struct bpf_prog_info info = {0}; - uint32_t len = sizeof(info); - int fd, ret, dump_ok = 0; - SPRINT_BUF(tmp); -@@ -452,7 +452,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) - { -- struct bpf_elf_map tmp, zero = {}; -+ struct bpf_elf_map tmp, zero = {0}; - int ret; - - ret = bpf_derive_elf_map_from_fdinfo(fd, &tmp, ext); -@@ -694,7 +694,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]; -- struct stat sb = {}; -+ struct stat sb = {0}; - int ret; - - snprintf(bpf_lnk_dir, sizeof(bpf_lnk_dir), "%s%s/", base, link); -@@ -801,7 +801,7 @@ out: - - static int bpf_obj_get(const char *pathname, enum bpf_prog_type type) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - char tmp[PATH_MAX]; - - if (strlen(pathname) > 2 && pathname[0] == 'm' && -@@ -982,7 +982,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) - { -- bool opt_tbl[BPF_MODE_MAX] = {}; -+ bool opt_tbl[BPF_MODE_MAX] = {0}; - - if (ops->cbpf_cb) { - opt_tbl[CBPF_BYTECODE] = true; -@@ -1025,7 +1025,7 @@ int bpf_graft_map(const char *map_path, uint32_t *key, int argc, char **argv) - .argc = argc, - .argv = argv, - }; -- struct bpf_map_ext ext = {}; -+ struct bpf_map_ext ext = {0}; - int ret, prog_fd, map_fd; - uint32_t map_key; - -@@ -1078,7 +1078,7 @@ out_prog: - - int bpf_prog_attach_fd(int prog_fd, int target_fd, enum bpf_attach_type type) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.target_fd = target_fd; - attr.attach_bpf_fd = prog_fd; -@@ -1089,7 +1089,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) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.target_fd = target_fd; - attr.attach_type = type; -@@ -1101,7 +1101,7 @@ int bpf_prog_load_dev(enum bpf_prog_type type, const struct bpf_insn *insns, - size_t size_insns, const char *license, __u32 ifindex, - char *log, size_t size_log, bool verbose) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.prog_type = type; - attr.insns = bpf_ptr_to_u64(insns); -@@ -1265,7 +1265,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) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.map_type = type; - attr.key_size = size_key; -@@ -1284,7 +1284,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) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.btf = bpf_ptr_to_u64(btf); - attr.btf_size = size_btf; -@@ -1300,7 +1300,7 @@ static int bpf_btf_load(void *btf, size_t size_btf, - - static int bpf_obj_pin(int fd, const char *pathname) - { -- union bpf_attr attr = {}; -+ union bpf_attr attr = {0}; - - attr.pathname = bpf_ptr_to_u64(pathname); - attr.bpf_fd = fd; -@@ -1985,7 +1985,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) - { -- struct bpf_elf_map fixup[ARRAY_SIZE(ctx->maps)] = {}; -+ struct bpf_elf_map fixup[ARRAY_SIZE(ctx->maps)] = {0}; - int i, sym_num = bpf_map_num_sym(ctx); - __u8 *buff; - -@@ -2491,7 +2491,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++) { -- struct bpf_relo_props props = {}; -+ struct bpf_relo_props props = {0}; - - ret = bpf_fill_section_data(ctx, i, &data_relo); - if (ret < 0 || data_relo.sec_hdr.sh_type != SHT_REL) -@@ -2666,7 +2666,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) { -- struct bpf_jited_aux aux = {}; -+ struct bpf_jited_aux aux = {0}; - - ret = -errno; - if (errno == E2BIG) { -@@ -2757,7 +2757,7 @@ static bool bpf_pinning_reserved(uint32_t pinning) - static int bpf_hash_init(struct bpf_elf_ctx *ctx, const char *db_file) - { - struct bpf_hash_entry *entry; -- char subpath[PATH_MAX] = {}; -+ char subpath[PATH_MAX] = {0}; - uint32_t pinning; - FILE *fp; - int ret; -@@ -2857,7 +2857,7 @@ static void bpf_get_cfg(struct bpf_elf_ctx *ctx) - - fd = open(path_jit, O_RDONLY); - if (fd >= 0) { -- char tmp[16] = {}; -+ char tmp[16] = {0}; - - if (read(fd, tmp, sizeof(tmp)) > 0) - ctx->cfg.jit_enabled = atoi(tmp); -diff --git a/lib/libnetlink.c b/lib/libnetlink.c -index 80adabf4..db613e8d 100644 ---- a/lib/libnetlink.c -+++ b/lib/libnetlink.c -@@ -79,7 +79,7 @@ static void print_ext_ack_msg(bool is_err, const char *msg) - /* dump netlink extended ack error message */ - int nl_dump_ext_ack(const struct nlmsghdr *nlh, nl_ext_ack_fn_t errfn) - { -- struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {0}; - const struct nlmsgerr *err = mnl_nlmsg_get_payload(nlh); - const struct nlmsghdr *err_nlh = NULL; - unsigned int hlen = sizeof(*err); -@@ -126,7 +126,7 @@ int nl_dump_ext_ack(const struct nlmsghdr *nlh, nl_ext_ack_fn_t errfn) - - int nl_dump_ext_ack_done(const struct nlmsghdr *nlh, unsigned int offset, int error) - { -- struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {}; -+ struct nlattr *tb[NLMSGERR_ATTR_MAX + 1] = {0}; - const char *msg = NULL; - - if (mnl_attr_parse(nlh, offset, err_attr_cb, tb) != MNL_CB_OK) -@@ -959,7 +959,7 @@ int rtnl_dump_filter_nc(struct rtnl_handle *rth, - .filter = filter, .arg1 = arg1, - .nc_flags = nc_flags, - }, -- { }, -+ {0}, - }; - - return rtnl_dump_filter_l(rth, a); -@@ -978,7 +978,7 @@ int rtnl_dump_filter_errhndlr_nc(struct rtnl_handle *rth, - .errhndlr = errhndlr, .arg2 = arg2, - .nc_flags = nc_flags, - }, -- { }, -+ {0}, - }; - - return rtnl_dump_filter_l(rth, a); -diff --git a/lib/ll_map.c b/lib/ll_map.c -index 8970c20f..7fe5f0bc 100644 ---- a/lib/ll_map.c -+++ b/lib/ll_map.c -@@ -274,7 +274,7 @@ static int ll_link_get(const char *name, int index) - .ifm.ifi_index = index, - }; - __u32 filt_mask = RTEXT_FILTER_VF | RTEXT_FILTER_SKIP_STATS; -- struct rtnl_handle rth = {}; -+ struct rtnl_handle rth = {0}; - struct nlmsghdr *answer; - int rc = 0; - -diff --git a/lib/rt_names.c b/lib/rt_names.c -index dafef3f1..c3b121fe 100644 ---- a/lib/rt_names.c -+++ b/lib/rt_names.c -@@ -825,8 +825,7 @@ int nl_proto_a2n(__u32 *id, const char *arg) - } - - #define PROTODOWN_REASON_NUM_BITS 32 --static char *protodown_reason_tab[PROTODOWN_REASON_NUM_BITS] = { --}; -+static char *protodown_reason_tab[PROTODOWN_REASON_NUM_BITS]; - - static int protodown_reason_init; - -diff --git a/misc/arpd.c b/misc/arpd.c -index 1ef837c6..71524bd4 100644 ---- a/misc/arpd.c -+++ b/misc/arpd.c -@@ -431,7 +431,7 @@ static void get_kern_msg(void) - { - int status; - struct nlmsghdr *h; -- struct sockaddr_nl nladdr = {}; -+ struct sockaddr_nl nladdr = {0}; - struct iovec iov; - char buf[8192]; - struct msghdr msg = { -@@ -655,7 +655,7 @@ int main(int argc, char **argv) - - if (ifnum) { - int i; -- struct ifreq ifr = {}; -+ struct ifreq ifr = {0}; - - 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 fb560a55..e5d97d95 100644 ---- a/misc/ss.c -+++ b/misc/ss.c -@@ -2760,7 +2760,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; -- struct tcpstat s = {}; -+ struct tcpstat s = {0}; - char *loc, *rem, *data; - char opt[256]; - int n; -@@ -3041,7 +3041,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r, - struct rtattr *tb[]) - { - double rtt = 0; -- struct tcpstat s = {}; -+ struct tcpstat s = {0}; - - s.ss.state = r->idiag_state; - -@@ -3414,7 +3414,7 @@ static int inet_show_sock(struct nlmsghdr *nlh, - inet_stats_print(s, v6only); - - if (show_options) { -- struct tcpstat t = {}; -+ struct tcpstat t = {0}; - - t.timer = r->idiag_timer; - t.timeout = r->idiag_expires; -@@ -3691,7 +3691,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); -- struct sockstat s = {}; -+ struct sockstat s = {0}; - - if (!(diag_arg->f->families & FAMILY_MASK(r->idiag_family))) - return 0; -@@ -3788,7 +3788,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 != sizeof(*h)) { -@@ -3945,7 +3945,7 @@ static int sctp_show(struct filter *f) - - static int dgram_show_line(char *line, const struct filter *f, int family) - { -- struct sockstat s = {}; -+ struct sockstat s = {0}; - char *loc, *rem, *data; - char opt[256]; - int n; -@@ -4085,7 +4085,7 @@ static bool unix_type_skip(struct sockstat *s, struct filter *f) - - static void unix_stats_print(struct sockstat *s, struct filter *f) - { -- char port_name[30] = {}; -+ char port_name[30] = {0}; - - sock_state_print(s); - -@@ -4398,7 +4398,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]; -- struct sockstat stat = {}; -+ struct sockstat stat = {0}; - uint32_t fanout = 0; - bool has_fanout = false; - -@@ -4547,7 +4547,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; -- struct sockstat stat = {}; -+ struct sockstat stat = {0}; - int type, prot, iface, state, rq, uid, ino; - - sscanf(buf, "%llx %*d %d %x %d %d %u %u %u", -@@ -4687,7 +4687,7 @@ static int xdp_show_sock(struct nlmsghdr *nlh, void *arg) - struct xdp_diag_umem *umem = NULL; - struct xdp_diag_stats *stats = NULL; - const struct filter *f = arg; -- struct sockstat stat = {}; -+ struct sockstat stat = {0}; - - parse_rtattr(tb, XDP_DIAG_MAX, (struct rtattr *)(msg + 1), - nlh->nlmsg_len - NLMSG_LENGTH(sizeof(*msg))); -@@ -4772,9 +4772,9 @@ static int netlink_show_one(struct filter *f, - .remote.family = AF_NETLINK, - }; - -- SPRINT_BUF(prot_buf) = {}; -+ SPRINT_BUF(prot_buf) = {0}; - const char *prot_name; -- char procname[64] = {}; -+ char procname[64] = {0}; - - if (f->f) { - st.rport = -1; -@@ -5021,8 +5021,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); - -- SPRINT_BUF(addr) = {}; -- SPRINT_BUF(port) = {}; -+ SPRINT_BUF(addr) = {0}; -+ SPRINT_BUF(port) = {0}; - - sprintf(addr, "%u", node); - sprintf(port, "%u", identity); -@@ -5032,12 +5032,12 @@ static void tipc_sock_addr_print(struct rtattr *net_addr, struct rtattr *id) - - static int tipc_show_sock(struct nlmsghdr *nlh, void *arg) - { -- struct rtattr *stat[TIPC_NLA_SOCK_STAT_MAX + 1] = {}; -- struct rtattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {}; -- struct rtattr *con[TIPC_NLA_CON_MAX + 1] = {}; -- struct rtattr *info[TIPC_NLA_MAX + 1] = {}; -+ struct rtattr *stat[TIPC_NLA_SOCK_STAT_MAX + 1] = {0}; -+ struct rtattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0}; -+ struct rtattr *con[TIPC_NLA_CON_MAX + 1] = {0}; -+ struct rtattr *info[TIPC_NLA_MAX + 1] = {0}; - struct rtattr *msg_ref; -- struct sockstat ss = {}; -+ struct sockstat ss = {0}; - - parse_rtattr(info, TIPC_NLA_MAX, NLMSG_DATA(nlh), - NLMSG_PAYLOAD(nlh, 0)); -diff --git a/rdma/dev.c b/rdma/dev.c -index f495b713..dfc886bb 100644 ---- a/rdma/dev.c -+++ b/rdma/dev.c -@@ -201,7 +201,7 @@ static void dev_print_dev_proto(struct nlattr **tb) - - static int dev_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - const char *name; - uint32_t idx; -diff --git a/rdma/link.c b/rdma/link.c -index 85318173..9b3125d6 100644 ---- a/rdma/link.c -+++ b/rdma/link.c -@@ -220,7 +220,7 @@ static void link_print_netdev(const struct rd * rd, struct nlattr **tb) - - static int link_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - uint32_t port, idx; - const char *name; -diff --git a/rdma/rdma.c b/rdma/rdma.c -index 131c6b2a..90bf3ed5 100644 ---- a/rdma/rdma.c -+++ b/rdma/rdma.c -@@ -103,7 +103,7 @@ int main(int argc, char **argv) - bool show_raw = false; - bool force = false; - bool oneline = false; -- struct rd rd = {}; -+ struct rd rd = {0}; - char *filename; - int opt; - int err; -diff --git a/rdma/res-cmid.c b/rdma/res-cmid.c -index 17a89cc4..7d348d45 100644 ---- a/rdma/res-cmid.c -+++ b/rdma/res-cmid.c -@@ -202,7 +202,7 @@ out: - - int res_cm_id_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - const char *name; - int idx; -@@ -219,7 +219,7 @@ int res_cm_id_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - - int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct nlattr *nla_table, *nla_entry; - struct rd *rd = data; - int ret = MNL_CB_OK; -@@ -236,7 +236,7 @@ int res_cm_id_parse_cb(const struct nlmsghdr *nlh, void *data) - nla_table = tb[RDMA_NLDEV_ATTR_RES_CM_ID]; - - mnl_attr_for_each_nested(nla_entry, nla_table) { -- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0}; - - ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line); - if (ret != MNL_CB_OK) -diff --git a/rdma/res-cq.c b/rdma/res-cq.c -index 0cab3fe0..a8ee00dc 100644 ---- a/rdma/res-cq.c -+++ b/rdma/res-cq.c -@@ -130,7 +130,7 @@ out: - - int res_cq_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - const char *name; - uint32_t idx; -@@ -148,7 +148,7 @@ int res_cq_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - - int res_cq_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct nlattr *nla_table, *nla_entry; - struct rd *rd = data; - int ret = MNL_CB_OK; -@@ -165,7 +165,7 @@ int res_cq_parse_cb(const struct nlmsghdr *nlh, void *data) - nla_table = tb[RDMA_NLDEV_ATTR_RES_CQ]; - - mnl_attr_for_each_nested(nla_entry, nla_table) { -- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0}; - - ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line); - if (ret != MNL_CB_OK) -diff --git a/rdma/res-mr.c b/rdma/res-mr.c -index f6c2534a..024f5994 100644 ---- a/rdma/res-mr.c -+++ b/rdma/res-mr.c -@@ -96,7 +96,7 @@ out: - - int res_mr_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - const char *name; - uint32_t idx; -@@ -114,7 +114,7 @@ int res_mr_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - - int res_mr_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct nlattr *nla_table, *nla_entry; - struct rd *rd = data; - int ret = MNL_CB_OK; -@@ -131,7 +131,7 @@ int res_mr_parse_cb(const struct nlmsghdr *nlh, void *data) - nla_table = tb[RDMA_NLDEV_ATTR_RES_MR]; - - mnl_attr_for_each_nested(nla_entry, nla_table) { -- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0}; - - ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line); - if (ret != MNL_CB_OK) -diff --git a/rdma/res-pd.c b/rdma/res-pd.c -index 8b9f7aa6..e45b1d0d 100644 ---- a/rdma/res-pd.c -+++ b/rdma/res-pd.c -@@ -82,7 +82,7 @@ out: - - int res_pd_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - const char *name; - uint32_t idx; -@@ -99,7 +99,7 @@ int res_pd_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - - int res_pd_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct nlattr *nla_table, *nla_entry; - struct rd *rd = data; - int ret = MNL_CB_OK; -@@ -116,7 +116,7 @@ int res_pd_parse_cb(const struct nlmsghdr *nlh, void *data) - nla_table = tb[RDMA_NLDEV_ATTR_RES_PD]; - - mnl_attr_for_each_nested(nla_entry, nla_table) { -- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0}; - - ret = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line); - if (ret != MNL_CB_OK) -diff --git a/rdma/res-qp.c b/rdma/res-qp.c -index 65ff54ab..49a3d549 100644 ---- a/rdma/res-qp.c -+++ b/rdma/res-qp.c -@@ -183,7 +183,7 @@ out: - - int res_qp_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct rd *rd = data; - const char *name; - uint32_t idx; -@@ -201,7 +201,7 @@ int res_qp_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - - int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct nlattr *nla_table, *nla_entry; - struct rd *rd = data; - int ret = MNL_CB_OK; -@@ -218,7 +218,7 @@ int res_qp_parse_cb(const struct nlmsghdr *nlh, void *data) - nla_table = tb[RDMA_NLDEV_ATTR_RES_QP]; - - mnl_attr_for_each_nested(nla_entry, nla_table) { -- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0}; - - 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 3e024134..fac047f2 100644 ---- a/rdma/res.c -+++ b/rdma/res.c -@@ -38,7 +38,7 @@ static int res_print_summary(struct nlattr **tb) - int err; - - mnl_attr_for_each_nested(nla_entry, nla_table) { -- struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *nla_line[RDMA_NLDEV_ATTR_MAX] = {0}; - - err = mnl_attr_parse_nested(nla_entry, rd_attr_cb, nla_line); - if (err != MNL_CB_OK) -@@ -63,7 +63,7 @@ static int res_no_args_idx_parse_cb(const struct nlmsghdr *nlh, void *data) - - static int res_no_args_parse_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - const char *name; - uint32_t idx; - -diff --git a/rdma/utils.c b/rdma/utils.c -index 27595a38..9ac34a0d 100644 ---- a/rdma/utils.c -+++ b/rdma/utils.c -@@ -512,7 +512,7 @@ int rd_attr_cb(const struct nlattr *attr, void *data) - - int rd_dev_init_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {}; -+ struct nlattr *tb[RDMA_NLDEV_ATTR_MAX] = {0}; - struct dev_map *dev_map; - struct rd *rd = data; - const char *dev_name; -diff --git a/tc/e_bpf.c b/tc/e_bpf.c -index 79cddace..9ab76e26 100644 ---- a/tc/e_bpf.c -+++ b/tc/e_bpf.c -@@ -54,8 +54,8 @@ static int parse_bpf(struct exec_util *eu, int argc, char **argv) - char **argv_run = argv_default, **envp_run, *tmp; - int ret, i, env_old, env_num, env_map; - const char *bpf_uds_name = NULL; -- int fds[BPF_SCM_MAX_FDS] = {}; -- struct bpf_map_aux aux = {}; -+ int fds[BPF_SCM_MAX_FDS] = {0}; -+ struct bpf_map_aux aux = {0}; - - if (argc == 0) - return 0; -diff --git a/tc/em_cmp.c b/tc/em_cmp.c -index dfd123df..75a39990 100644 ---- a/tc/em_cmp.c -+++ b/tc/em_cmp.c -@@ -39,7 +39,7 @@ static int cmp_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr, - int align, opnd = 0; - unsigned long offset = 0, layer = TCF_LAYER_NETWORK, mask = 0, value = 0; - int offset_present = 0, value_present = 0; -- struct tcf_em_cmp cmp = {}; -+ struct tcf_em_cmp cmp = {0}; - - #define PARSE_ERR(CARG, FMT, ARGS...) \ - em_parse_error(EINVAL, args, CARG, &cmp_ematch_util, FMT, ##ARGS) -diff --git a/tc/em_ipset.c b/tc/em_ipset.c -index f97abaf3..c80c429e 100644 ---- a/tc/em_ipset.c -+++ b/tc/em_ipset.c -@@ -195,7 +195,7 @@ static void ipset_print_usage(FILE *fd) - static int ipset_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr, - struct bstr *args) - { -- struct xt_set_info set_info = {}; -+ struct xt_set_info set_info = {0}; - int ret; - - #define PARSE_ERR(CARG, FMT, ARGS...) \ -diff --git a/tc/em_meta.c b/tc/em_meta.c -index 6a5654f3..b0ba5ba2 100644 ---- a/tc/em_meta.c -+++ b/tc/em_meta.c -@@ -356,7 +356,7 @@ static int meta_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr, - { - int opnd; - struct bstr *a; -- struct tcf_meta_hdr meta_hdr = {}; -+ struct tcf_meta_hdr meta_hdr = {0}; - unsigned long lvalue = 0, rvalue = 0; - - if (args == NULL) -diff --git a/tc/em_nbyte.c b/tc/em_nbyte.c -index 9f421fb4..c6afd298 100644 ---- a/tc/em_nbyte.c -+++ b/tc/em_nbyte.c -@@ -39,7 +39,7 @@ static int nbyte_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr, - struct bstr *needle = args; - unsigned long offset = 0, layer = TCF_LAYER_NETWORK; - int offset_present = 0; -- struct tcf_em_nbyte nb = {}; -+ struct tcf_em_nbyte nb = {0}; - - #define PARSE_ERR(CARG, FMT, ARGS...) \ - em_parse_error(EINVAL, args, CARG, &nbyte_ematch_util, FMT, ##ARGS) -diff --git a/tc/em_u32.c b/tc/em_u32.c -index a83382ba..604a0caf 100644 ---- a/tc/em_u32.c -+++ b/tc/em_u32.c -@@ -34,7 +34,7 @@ static int u32_parse_eopt(struct nlmsghdr *n, struct tcf_ematch_hdr *hdr, - struct bstr *a; - int align, nh_len; - unsigned long key, mask, offmask = 0, offset; -- struct tc_u32_key u_key = {}; -+ struct tc_u32_key u_key = {0}; - - #define PARSE_ERR(CARG, FMT, ARGS...) \ - em_parse_error(EINVAL, args, CARG, &u32_ematch_util, FMT, ##ARGS) -diff --git a/tc/f_bpf.c b/tc/f_bpf.c -index a6d4875f..b71b24e9 100644 ---- a/tc/f_bpf.c -+++ b/tc/f_bpf.c -@@ -78,7 +78,7 @@ static int bpf_parse_opt(struct filter_util *qu, char *handle, - struct tcmsg *t = NLMSG_DATA(n); - unsigned int bpf_gen_flags = 0; - unsigned int bpf_flags = 0; -- struct bpf_cfg_in cfg = {}; -+ struct bpf_cfg_in cfg = {0}; - bool seen_run = false; - bool skip_sw = false; - struct rtattr *tail; -diff --git a/tc/f_fw.c b/tc/f_fw.c -index 5e72e526..e2a11847 100644 ---- a/tc/f_fw.c -+++ b/tc/f_fw.c -@@ -88,7 +88,7 @@ static int fw_parse_opt(struct filter_util *qu, char *handle, int argc, char **a - } - continue; - } else if (strcmp(*argv, "indev") == 0) { -- char d[IFNAMSIZ+1] = {}; -+ char d[IFNAMSIZ+1] = {0}; - - argc--; - argv++; -diff --git a/tc/f_u32.c b/tc/f_u32.c -index 59aa4e3a..19f035d0 100644 ---- a/tc/f_u32.c -+++ b/tc/f_u32.c -@@ -1024,7 +1024,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle, - struct { - struct tc_u32_sel sel; - struct tc_u32_key keys[128]; -- } sel = {}; -+ } sel = {0}; - struct tcmsg *t = NLMSG_DATA(n); - struct rtattr *tail; - int sel_ok = 0, terminal_ok = 0; -@@ -1129,7 +1129,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle, - struct { - struct tc_u32_sel sel; - struct tc_u32_key keys[4]; -- } sel2 = {}; -+ } sel2 = {0}; - - NEXT_ARG(); - if (parse_selector(&argc, &argv, &sel2.sel, n)) { -@@ -1155,7 +1155,7 @@ static int u32_parse_opt(struct filter_util *qu, char *handle, - sample_ok = 1; - continue; - } else if (strcmp(*argv, "indev") == 0) { -- char ind[IFNAMSIZ + 1] = {}; -+ char ind[IFNAMSIZ + 1] = {0}; - - argc--; - argv++; -diff --git a/tc/m_bpf.c b/tc/m_bpf.c -index da50c05e..81866e55 100644 ---- a/tc/m_bpf.c -+++ b/tc/m_bpf.c -@@ -73,8 +73,8 @@ static int bpf_parse_opt(struct action_util *a, int *ptr_argc, char ***ptr_argv, - int tca_id, struct nlmsghdr *n) - { - const char *bpf_obj = NULL, *bpf_uds_name = NULL; -- struct tc_act_bpf parm = {}; -- struct bpf_cfg_in cfg = {}; -+ struct tc_act_bpf parm = {0}; -+ struct bpf_cfg_in cfg = {0}; - bool seen_run = false; - struct rtattr *tail; - int argc, ret = 0; -diff --git a/tc/m_connmark.c b/tc/m_connmark.c -index 8506d95a..9cc911b8 100644 ---- a/tc/m_connmark.c -+++ b/tc/m_connmark.c -@@ -35,7 +35,7 @@ static int - parse_connmark(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, - struct nlmsghdr *n) - { -- struct tc_connmark sel = {}; -+ struct tc_connmark sel = {0}; - char **argv = *argv_p; - int argc = *argc_p; - int ok = 0; -diff --git a/tc/m_csum.c b/tc/m_csum.c -index f5fe8f55..b29353b1 100644 ---- a/tc/m_csum.c -+++ b/tc/m_csum.c -@@ -84,7 +84,7 @@ static int - parse_csum(struct action_util *a, int *argc_p, - char ***argv_p, int tca_id, struct nlmsghdr *n) - { -- struct tc_csum sel = {}; -+ struct tc_csum sel = {0}; - - int argc = *argc_p; - char **argv = *argv_p; -diff --git a/tc/m_mirred.c b/tc/m_mirred.c -index e5653e67..6aca86ad 100644 ---- a/tc/m_mirred.c -+++ b/tc/m_mirred.c -@@ -91,9 +91,9 @@ parse_direction(struct action_util *a, int *argc_p, char ***argv_p, - int argc = *argc_p; - char **argv = *argv_p; - int ok = 0, iok = 0, mirror = 0, redir = 0, ingress = 0, egress = 0; -- struct tc_mirred p = {}; -+ struct tc_mirred p = {0}; - struct rtattr *tail; -- char d[IFNAMSIZ] = {}; -+ char d[IFNAMSIZ] = {0}; - - while (argc > 0) { - -diff --git a/tc/m_nat.c b/tc/m_nat.c -index 95b35584..b8869141 100644 ---- a/tc/m_nat.c -+++ b/tc/m_nat.c -@@ -78,7 +78,7 @@ bad_val: - static int - parse_nat(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n) - { -- struct tc_nat sel = {}; -+ struct tc_nat sel = {0}; - - int argc = *argc_p; - char **argv = *argv_p; -diff --git a/tc/m_pedit.c b/tc/m_pedit.c -index 32f03415..f65fcedf 100644 ---- a/tc/m_pedit.c -+++ b/tc/m_pedit.c -@@ -519,7 +519,7 @@ done: - - static int parse_munge(int *argc_p, char ***argv_p, struct m_pedit_sel *sel) - { -- struct m_pedit_key tkey = {}; -+ struct m_pedit_key tkey = {0}; - int argc = *argc_p; - char **argv = *argv_p; - int res = -1; -@@ -623,7 +623,7 @@ static int pedit_keys_ex_addattr(struct m_pedit_sel *sel, struct nlmsghdr *n) - static int parse_pedit(struct action_util *a, int *argc_p, char ***argv_p, - int tca_id, struct nlmsghdr *n) - { -- struct m_pedit_sel sel = {}; -+ struct m_pedit_sel sel = {0}; - - int argc = *argc_p; - char **argv = *argv_p; -diff --git a/tc/m_simple.c b/tc/m_simple.c -index fe2bca21..765fef96 100644 ---- a/tc/m_simple.c -+++ b/tc/m_simple.c -@@ -93,7 +93,7 @@ static int - parse_simple(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, - struct nlmsghdr *n) - { -- struct tc_defact sel = {}; -+ struct tc_defact sel = {0}; - int argc = *argc_p; - char **argv = *argv_p; - int ok = 0; -diff --git a/tc/m_tunnel_key.c b/tc/m_tunnel_key.c -index ff699cc8..c6aabb0c 100644 ---- a/tc/m_tunnel_key.c -+++ b/tc/m_tunnel_key.c -@@ -314,7 +314,7 @@ static int tunnel_key_parse_tos_ttl(char *str, int type, struct nlmsghdr *n) - static int parse_tunnel_key(struct action_util *a, int *argc_p, char ***argv_p, - int tca_id, struct nlmsghdr *n) - { -- struct tc_tunnel_key parm = {}; -+ struct tc_tunnel_key parm = {0}; - char **argv = *argv_p; - int argc = *argc_p; - struct rtattr *tail; -diff --git a/tc/m_vlan.c b/tc/m_vlan.c -index c1dc8b42..3293aae6 100644 ---- a/tc/m_vlan.c -+++ b/tc/m_vlan.c -@@ -73,7 +73,7 @@ static int parse_vlan(struct action_util *a, int *argc_p, char ***argv_p, - int proto_set = 0; - __u8 prio; - int prio_set = 0; -- struct tc_vlan parm = {}; -+ struct tc_vlan parm = {0}; - - if (matches(*argv, "vlan") != 0) - return -1; -diff --git a/tc/q_cbs.c b/tc/q_cbs.c -index 788535c6..072b393a 100644 ---- a/tc/q_cbs.c -+++ b/tc/q_cbs.c -@@ -32,7 +32,7 @@ static void explain1(const char *arg, const char *val) - static int cbs_parse_opt(struct qdisc_util *qu, int argc, - char **argv, struct nlmsghdr *n, const char *dev) - { -- struct tc_cbs_qopt opt = {}; -+ struct tc_cbs_qopt opt = {0}; - struct rtattr *tail; - - while (argc > 0) { -diff --git a/tc/q_choke.c b/tc/q_choke.c -index 7653eb7e..4a69fdff 100644 ---- a/tc/q_choke.c -+++ b/tc/q_choke.c -@@ -30,7 +30,7 @@ static void explain(void) - static int choke_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { -- struct tc_red_qopt opt = {}; -+ struct tc_red_qopt opt = {0}; - unsigned int burst = 0; - unsigned int avpkt = 1000; - double probability = 0.02; -diff --git a/tc/q_codel.c b/tc/q_codel.c -index 03b6f92f..37e31495 100644 ---- a/tc/q_codel.c -+++ b/tc/q_codel.c -@@ -150,7 +150,7 @@ static int codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) - static int codel_print_xstats(struct qdisc_util *qu, FILE *f, - struct rtattr *xstats) - { -- struct tc_codel_xstats _st = {}, *st; -+ struct tc_codel_xstats _st = {0}, *st; - - SPRINT_BUF(b1); - -diff --git a/tc/q_fifo.c b/tc/q_fifo.c -index 9b2c5348..2db11c7c 100644 ---- a/tc/q_fifo.c -+++ b/tc/q_fifo.c -@@ -26,7 +26,7 @@ static int fifo_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { - int ok = 0; -- struct tc_fifo_qopt opt = {}; -+ struct tc_fifo_qopt opt = {0}; - - while (argc > 0) { - if (strcmp(*argv, "limit") == 0) { -diff --git a/tc/q_fq_codel.c b/tc/q_fq_codel.c -index 9c9d7bc1..ac52c160 100644 ---- a/tc/q_fq_codel.c -+++ b/tc/q_fq_codel.c -@@ -253,7 +253,7 @@ static int fq_codel_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt - static int fq_codel_print_xstats(struct qdisc_util *qu, FILE *f, - struct rtattr *xstats) - { -- struct tc_fq_codel_xstats _st = {}, *st; -+ struct tc_fq_codel_xstats _st = {0}, *st; - - SPRINT_BUF(b1); - -diff --git a/tc/q_gred.c b/tc/q_gred.c -index f6a3f05e..85387e2b 100644 ---- a/tc/q_gred.c -+++ b/tc/q_gred.c -@@ -299,8 +299,8 @@ gred_parse_vqs(struct tc_gred_info *info, struct rtattr *vqs) - unsigned int offset = 0; - - while (rem > offset) { -- struct rtattr *tb_entry[TCA_GRED_VQ_ENTRY_MAX + 1] = {}; -- struct rtattr *tb[TCA_GRED_VQ_MAX + 1] = {}; -+ struct rtattr *tb_entry[TCA_GRED_VQ_ENTRY_MAX + 1] = {0}; -+ struct rtattr *tb[TCA_GRED_VQ_MAX + 1] = {0}; - struct rtattr *entry; - unsigned int len; - unsigned int dp; -@@ -408,7 +408,7 @@ gred_print_stats(struct tc_gred_info *info, struct tc_gred_qopt *qopt) - - static int gred_print_opt(struct qdisc_util *qu, FILE *f, struct rtattr *opt) - { -- struct tc_gred_info infos[MAX_DPs] = {}; -+ struct tc_gred_info infos[MAX_DPs] = {0}; - struct rtattr *tb[TCA_GRED_MAX + 1]; - struct tc_gred_sopt *sopt; - struct tc_gred_qopt *qopt; -diff --git a/tc/q_hfsc.c b/tc/q_hfsc.c -index 609d925a..b4bb78f2 100644 ---- a/tc/q_hfsc.c -+++ b/tc/q_hfsc.c -@@ -68,7 +68,7 @@ static int - hfsc_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { -- struct tc_hfsc_qopt qopt = {}; -+ struct tc_hfsc_qopt qopt = {0}; - - while (argc > 0) { - if (matches(*argv, "default") == 0) { -@@ -139,7 +139,7 @@ static int - hfsc_parse_class_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { -- struct tc_service_curve rsc = {}, fsc = {}, usc = {}; -+ struct tc_service_curve rsc = {0}, fsc = {}, usc = {}; - int rsc_ok = 0, fsc_ok = 0, usc_ok = 0; - struct rtattr *tail; - -diff --git a/tc/q_htb.c b/tc/q_htb.c -index 9afb293d..83401cde 100644 ---- a/tc/q_htb.c -+++ b/tc/q_htb.c -@@ -110,7 +110,7 @@ static int htb_parse_opt(struct qdisc_util *qu, int argc, - static int htb_parse_class_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { -- struct tc_htb_opt opt = {}; -+ struct tc_htb_opt opt = {0}; - __u32 rtab[256], ctab[256]; - unsigned buffer = 0, cbuffer = 0; - int cell_log = -1, ccell_log = -1; -diff --git a/tc/q_multiq.c b/tc/q_multiq.c -index b1e6c9a8..12027bc8 100644 ---- a/tc/q_multiq.c -+++ b/tc/q_multiq.c -@@ -31,7 +31,7 @@ static void explain(void) - static int multiq_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { -- struct tc_multiq_qopt opt = {}; -+ struct tc_multiq_qopt opt = {0}; - - if (argc) { - if (strcmp(*argv, "help") == 0) { -diff --git a/tc/q_netem.c b/tc/q_netem.c -index 4ce9ab6e..9fa40cc4 100644 ---- a/tc/q_netem.c -+++ b/tc/q_netem.c -@@ -197,17 +197,17 @@ static int netem_parse_opt(struct qdisc_util *qu, int argc, char **argv, - int slot_dist_size = 0; - struct rtattr *tail; - struct tc_netem_qopt opt = { .limit = 1000 }; -- struct tc_netem_corr cor = {}; -- struct tc_netem_reorder reorder = {}; -- struct tc_netem_corrupt corrupt = {}; -+ struct tc_netem_corr cor = {0}; -+ struct tc_netem_reorder reorder = {0}; -+ struct tc_netem_corrupt corrupt = {0}; - struct tc_netem_gimodel gimodel; - struct tc_netem_gemodel gemodel; -- struct tc_netem_rate rate = {}; -- struct tc_netem_slot slot = {}; -+ struct tc_netem_rate rate = {0}; -+ struct tc_netem_slot slot = {0}; - __s16 *dist_data = NULL; - __s16 *slot_dist_data = NULL; - __u16 loss_type = NETEM_LOSS_UNSPEC; -- int present[__TCA_NETEM_MAX] = {}; -+ int present[__TCA_NETEM_MAX] = {0}; - __u64 rate64 = 0; - __u64 seed = 0; - -diff --git a/tc/q_red.c b/tc/q_red.c -index f760253d..5c523a16 100644 ---- a/tc/q_red.c -+++ b/tc/q_red.c -@@ -46,7 +46,7 @@ static int red_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nla_bitfield32 flags_bf = { - .selector = RED_SUPPORTED_FLAGS, - }; -- struct tc_red_qopt opt = {}; -+ struct tc_red_qopt opt = {0}; - unsigned int burst = 0; - unsigned int avpkt = 0; - double probability = 0.02; -diff --git a/tc/q_sfq.c b/tc/q_sfq.c -index 17bf8f63..62911069 100644 ---- a/tc/q_sfq.c -+++ b/tc/q_sfq.c -@@ -33,7 +33,7 @@ static void explain(void) - static int sfq_parse_opt(struct qdisc_util *qu, int argc, char **argv, struct nlmsghdr *n, const char *dev) - { - int ok = 0, red = 0; -- struct tc_sfq_qopt_v1 opt = {}; -+ struct tc_sfq_qopt_v1 opt = {0}; - unsigned int burst = 0; - int wlog; - unsigned int avpkt = 1000; -diff --git a/tc/q_skbprio.c b/tc/q_skbprio.c -index b0ba180a..cdb174ff 100644 ---- a/tc/q_skbprio.c -+++ b/tc/q_skbprio.c -@@ -27,7 +27,7 @@ static int skbprio_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { - int ok = 0; -- struct tc_skbprio_qopt opt = {}; -+ struct tc_skbprio_qopt opt = {0}; - - while (argc > 0) { - if (strcmp(*argv, "limit") == 0) { -diff --git a/tc/q_tbf.c b/tc/q_tbf.c -index f621756d..7b149228 100644 ---- a/tc/q_tbf.c -+++ b/tc/q_tbf.c -@@ -34,7 +34,7 @@ static void explain1(const char *arg, const char *val) - static int tbf_parse_opt(struct qdisc_util *qu, int argc, char **argv, - struct nlmsghdr *n, const char *dev) - { -- struct tc_tbf_qopt opt = {}; -+ struct tc_tbf_qopt opt = {0}; - __u32 rtab[256]; - __u32 ptab[256]; - unsigned buffer = 0, mtu = 0, mpu = 0, latency = 0; -diff --git a/tc/tc_class.c b/tc/tc_class.c -index f6a3d134..31712a8a 100644 ---- a/tc/tc_class.c -+++ b/tc/tc_class.c -@@ -31,8 +31,8 @@ struct graph_node { - int nodes_count; - }; - --static struct hlist_head cls_list = {}; --static struct hlist_head root_cls_list = {}; -+static struct hlist_head cls_list = {0}; -+static struct hlist_head root_cls_list = {0}; - - static void usage(void); - -@@ -62,9 +62,9 @@ static int tc_class_modify(int cmd, unsigned int flags, int argc, char **argv) - .t.tcm_family = AF_UNSPEC, - }; - struct qdisc_util *q = NULL; -- struct tc_estimator est = {}; -- char d[IFNAMSIZ] = {}; -- char k[FILTER_NAMESZ] = {}; -+ struct tc_estimator est = {0}; -+ char d[IFNAMSIZ] = {0}; -+ char k[FILTER_NAMESZ] = {0}; - - while (argc > 0) { - if (strcmp(*argv, "dev") == 0) { -@@ -211,14 +211,14 @@ static void graph_cls_show(FILE *fp, char *buf, struct hlist_head *root_list, - int level) - { - struct hlist_node *n, *tmp_cls; -- char cls_id_str[256] = {}; -+ char cls_id_str[256] = {0}; - struct rtattr *tb[TCA_MAX + 1]; - struct qdisc_util *q; -- char str[300] = {}; -+ char str[300] = {0}; - - hlist_for_each_safe(n, tmp_cls, root_list) { - struct hlist_node *c, *tmp_chld; -- struct hlist_head children = {}; -+ struct hlist_head children = {0}; - struct graph_node *cls = container_of(n, struct graph_node, - hlist); - -@@ -388,7 +388,7 @@ int print_class(struct nlmsghdr *n, void *arg) - static int tc_class_list(int argc, char **argv) - { - struct tcmsg t = { .tcm_family = AF_UNSPEC }; -- char d[IFNAMSIZ] = {}; -+ char d[IFNAMSIZ] = {0}; - char buf[1024] = {0}; - - filter_qdisc = 0; -diff --git a/tc/tc_exec.c b/tc/tc_exec.c -index 182fbb4c..0893aa03 100644 ---- a/tc/tc_exec.c -+++ b/tc/tc_exec.c -@@ -81,7 +81,7 @@ noexist: - int do_exec(int argc, char **argv) - { - struct exec_util *eu; -- char kind[FILTER_NAMESZ] = {}; -+ char kind[FILTER_NAMESZ] = {0}; - - if (argc < 1) { - fprintf(stderr, "No command given, try \"tc exec help\".\n"); -diff --git a/tc/tc_filter.c b/tc/tc_filter.c -index eb45c588..31c9788c 100644 ---- a/tc/tc_filter.c -+++ b/tc/tc_filter.c -@@ -73,9 +73,9 @@ static int tc_filter_modify(int cmd, unsigned int flags, int argc, char **argv) - __u32 chain_index = 0; - int chain_index_set = 0; - char *fhandle = NULL; -- char d[IFNAMSIZ] = {}; -- char k[FILTER_NAMESZ] = {}; -- struct tc_estimator est = {}; -+ char d[IFNAMSIZ] = {0}; -+ char k[FILTER_NAMESZ] = {0}; -+ struct tc_estimator est = {0}; - - if (cmd == RTM_NEWTFILTER && flags & NLM_F_CREATE) - protocol = htons(ETH_P_ALL); -@@ -401,8 +401,8 @@ static int tc_filter_get(int cmd, unsigned int flags, int argc, char **argv) - __u32 block_index = 0; - __u32 parent_handle = 0; - char *fhandle = NULL; -- char d[IFNAMSIZ] = {}; -- char k[FILTER_NAMESZ] = {}; -+ char d[IFNAMSIZ] = {0}; -+ char k[FILTER_NAMESZ] = {0}; - - while (argc > 0) { - if (strcmp(*argv, "dev") == 0) { -@@ -591,7 +591,7 @@ static int tc_filter_list(int cmd, int argc, char **argv) - .t.tcm_parent = TC_H_UNSPEC, - .t.tcm_family = AF_UNSPEC, - }; -- char d[IFNAMSIZ] = {}; -+ char d[IFNAMSIZ] = {0}; - __u32 prio = 0; - __u32 protocol = 0; - __u32 block_index = 0; -diff --git a/tc/tc_qdisc.c b/tc/tc_qdisc.c -index 84fd659f..175b7fab 100644 ---- a/tc/tc_qdisc.c -+++ b/tc/tc_qdisc.c -@@ -43,13 +43,13 @@ static int usage(void) - static int tc_qdisc_modify(int cmd, unsigned int flags, int argc, char **argv) - { - struct qdisc_util *q = NULL; -- struct tc_estimator est = {}; -+ struct tc_estimator est = {0}; - struct { - struct tc_sizespec szopts; - __u16 *data; -- } stab = {}; -- char d[IFNAMSIZ] = {}; -- char k[FILTER_NAMESZ] = {}; -+ } stab = {0}; -+ char d[IFNAMSIZ] = {0}; -+ char k[FILTER_NAMESZ] = {0}; - struct { - struct nlmsghdr n; - struct tcmsg t; -@@ -360,7 +360,7 @@ static int tc_qdisc_list(int argc, char **argv) - .t.tcm_family = AF_UNSPEC, - }; - -- char d[IFNAMSIZ] = {}; -+ char d[IFNAMSIZ] = {0}; - bool dump_invisible = false; - __u32 handle; - -diff --git a/tc/tc_stab.c b/tc/tc_stab.c -index a7733726..32f649f5 100644 ---- a/tc/tc_stab.c -+++ b/tc/tc_stab.c -@@ -46,7 +46,7 @@ int parse_size_table(int *argcp, char ***argvp, struct tc_sizespec *sp) - { - char **argv = *argvp; - int argc = *argcp; -- struct tc_sizespec s = {}; -+ struct tc_sizespec s = {0}; - - NEXT_ARG(); - if (matches(*argv, "help") == 0) { -diff --git a/tc/tc_util.c b/tc/tc_util.c -index aa7cf60f..83026c65 100644 ---- a/tc/tc_util.c -+++ b/tc/tc_util.c -@@ -132,7 +132,7 @@ ok: - - int print_tc_classid(char *buf, int blen, __u32 h) - { -- SPRINT_BUF(handle) = {}; -+ SPRINT_BUF(handle) = {0}; - int hlen = SPRINT_BSIZE - 1; - - if (h == TC_H_ROOT) -@@ -147,7 +147,7 @@ int print_tc_classid(char *buf, int blen, __u32 h) - snprintf(handle, hlen, "%x:%x", TC_H_MAJ(h) >> 16, TC_H_MIN(h)); - - if (use_names) { -- char clname[IDNAME_MAX] = {}; -+ char clname[IDNAME_MAX] = {0}; - - if (id_to_name(cls_names, h, clname)) - snprintf(buf, blen, "%s#%s", clname, handle); -@@ -798,7 +798,7 @@ void print_tcstats_attr(FILE *fp, struct rtattr *tb[], const char *prefix, - } - /* backward compatibility */ - if (tb[TCA_STATS]) { -- struct tc_stats st = {}; -+ struct tc_stats st = {0}; - - /* handle case where kernel returns more/less than we know about */ - memcpy(&st, RTA_DATA(tb[TCA_STATS]), -diff --git a/tipc/bearer.c b/tipc/bearer.c -index bb434f5f..3f703066 100644 ---- a/tipc/bearer.c -+++ b/tipc/bearer.c -@@ -79,8 +79,8 @@ static void cmd_bearer_enable_udp_help(struct cmdl *cmdl, char *media) - static int get_netid_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0}; - int *netid = (int*)data; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); -@@ -750,7 +750,7 @@ static int bearer_dump_udp_cb(const struct nlmsghdr *nlh, void *data) - { - struct sockaddr_storage *addr; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_UDP_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_UDP_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - -@@ -786,9 +786,9 @@ static int bearer_get_udp_cb(const struct nlmsghdr *nlh, void *data) - struct cb_data *cb_data = (struct cb_data *) data; - struct sockaddr_storage *addr; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {}; -- struct nlattr *opts[TIPC_NLA_UDP_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0}; -+ struct nlattr *opts[TIPC_NLA_UDP_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_BEARER]) -@@ -883,9 +883,9 @@ static int bearer_get_cb(const struct nlmsghdr *nlh, void *data) - { - int *prop = data; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {}; -- struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0}; -+ struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_BEARER]) -@@ -1066,8 +1066,8 @@ static int cmd_bearer_get(struct nlmsghdr *nlh, const struct cmd *cmd, - static int bearer_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_BEARER_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_BEARER]) { -diff --git a/tipc/link.c b/tipc/link.c -index f91c3000..15805757 100644 ---- a/tipc/link.c -+++ b/tipc/link.c -@@ -32,8 +32,8 @@ static const char tipc_bclink_name[] = "broadcast-link"; - static int link_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_LINK]) -@@ -82,9 +82,9 @@ static int link_get_cb(const struct nlmsghdr *nlh, void *data) - { - int *prop = data; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {}; -- struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0}; -+ struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_LINK]) -@@ -501,10 +501,10 @@ static int link_stat_show_cb(const struct nlmsghdr *nlh, void *data) - const char *name; - const char *link = data; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {}; -- struct nlattr *prop[TIPC_NLA_PROP_MAX + 1] = {}; -- struct nlattr *stats[TIPC_NLA_STATS_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1] = {0}; -+ struct nlattr *prop[TIPC_NLA_PROP_MAX + 1] = {0}; -+ struct nlattr *stats[TIPC_NLA_STATS_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_LINK]) -@@ -803,8 +803,8 @@ static int cmd_link_mon_set_prop(struct nlmsghdr *nlh, const struct cmd *cmd, - static int link_mon_summary_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_MON]) -@@ -935,8 +935,8 @@ static void link_mon_print_peer_state(const uint32_t addr, const char *status, - static int link_mon_peer_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *attrs[TIPC_NLA_MON_PEER_MAX + 1] = {}; -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -+ struct nlattr *attrs[TIPC_NLA_MON_PEER_MAX + 1] = {0}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; - uint16_t member_cnt; - uint32_t applied; - uint32_t dom_gen; -@@ -1021,8 +1021,8 @@ static int link_mon_peer_list(uint32_t mon_ref) - static int link_mon_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0}; - char *req_bearer = data; - const char *bname; - const char title[] = -@@ -1149,8 +1149,8 @@ static void cmd_link_mon_get_help(struct cmdl *cmdl) - static int link_mon_get_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_MON_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_MON]) -diff --git a/tipc/media.c b/tipc/media.c -index 5ff0c8c4..b5c03bae 100644 ---- a/tipc/media.c -+++ b/tipc/media.c -@@ -20,8 +20,8 @@ - static int media_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_MEDIA]) -@@ -57,9 +57,9 @@ static int media_get_cb(const struct nlmsghdr *nlh, void *data) - { - int *prop = data; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {}; -- struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_MEDIA_MAX + 1] = {0}; -+ struct nlattr *props[TIPC_NLA_PROP_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_MEDIA]) -diff --git a/tipc/misc.c b/tipc/misc.c -index 32d4a5e0..a4870762 100644 ---- a/tipc/misc.c -+++ b/tipc/misc.c -@@ -152,7 +152,7 @@ void nodeid2str(uint8_t *id, char *str) - - void hash2nodestr(uint32_t hash, char *str) - { -- struct tipc_sioc_nodeid_req nr = {}; -+ struct tipc_sioc_nodeid_req nr = {0}; - int sd; - - sd = socket(AF_TIPC, SOCK_RDM, 0); -diff --git a/tipc/nametable.c b/tipc/nametable.c -index 5162f7fc..fedae24e 100644 ---- a/tipc/nametable.c -+++ b/tipc/nametable.c -@@ -24,9 +24,9 @@ static int nametable_show_cb(const struct nlmsghdr *nlh, void *data) - { - int *iteration = data; - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_NAME_TABLE_MAX + 1] = {}; -- struct nlattr *publ[TIPC_NLA_PUBL_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_NAME_TABLE_MAX + 1] = {0}; -+ struct nlattr *publ[TIPC_NLA_PUBL_MAX + 1] = {0}; - const char *scope[] = { "", "zone", "cluster", "node" }; - char str[33] = {0,}; - -diff --git a/tipc/node.c b/tipc/node.c -index e645d374..6d86043f 100644 ---- a/tipc/node.c -+++ b/tipc/node.c -@@ -21,9 +21,9 @@ - - static int node_list_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_NODE_MAX + 1] = {}; -- char str[33] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_NODE_MAX + 1] = {0}; -+ char str[33] = {0}; - uint32_t addr; - - mnl_attr_parse(nlh, sizeof(struct genlmsghdr), parse_attrs, info); -@@ -300,8 +300,8 @@ static int cmd_node_flush_key(struct nlmsghdr *nlh, const struct cmd *cmd, - - static int nodeid_get_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0}; - char str[33] = {0,}; - uint8_t id[16] = {0,}; - uint64_t *w0 = (uint64_t *) &id[0]; -@@ -344,8 +344,8 @@ static int cmd_node_get_nodeid(struct nlmsghdr *nlh, const struct cmd *cmd, - - static int netid_get_cb(const struct nlmsghdr *nlh, void *data) - { -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_NET_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(struct genlmsghdr), parse_attrs, info); - if (!info[TIPC_NLA_NET]) -diff --git a/tipc/socket.c b/tipc/socket.c -index 4d376e07..178ecd8e 100644 ---- a/tipc/socket.c -+++ b/tipc/socket.c -@@ -23,8 +23,8 @@ - static int publ_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_PUBL]) -@@ -72,8 +72,8 @@ static int publ_list(uint32_t sock) - static int sock_list_cb(const struct nlmsghdr *nlh, void *data) - { - struct genlmsghdr *genl = mnl_nlmsg_get_payload(nlh); -- struct nlattr *info[TIPC_NLA_MAX + 1] = {}; -- struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {}; -+ struct nlattr *info[TIPC_NLA_MAX + 1] = {0}; -+ struct nlattr *attrs[TIPC_NLA_SOCK_MAX + 1] = {0}; - - mnl_attr_parse(nlh, sizeof(*genl), parse_attrs, info); - if (!info[TIPC_NLA_SOCK]) -@@ -87,7 +87,7 @@ static int sock_list_cb(const struct nlmsghdr *nlh, void *data) - - if (attrs[TIPC_NLA_SOCK_CON]) { - uint32_t node; -- struct nlattr *con[TIPC_NLA_CON_MAX + 1] = {}; -+ struct nlattr *con[TIPC_NLA_CON_MAX + 1] = {0}; - - mnl_attr_parse_nested(attrs[TIPC_NLA_SOCK_CON], parse_attrs, con); - node = mnl_attr_get_u32(con[TIPC_NLA_CON_NODE]); --- -2.44.0 - diff --git a/pkg/iproute2/patch/0007-Remove-semicolon-after-function-definitions.patch b/pkg/iproute2/patch/0006-Remove-semicolon-after-function-definitions.patch diff --git a/pkg/iproute2/patch/0008-Don-t-omit-second-operand-to-operator.patch b/pkg/iproute2/patch/0007-Don-t-omit-second-operand-to-operator.patch diff --git a/pkg/iproute2/patch/0009-Avoid-unnecessary-VLAs.patch b/pkg/iproute2/patch/0008-Avoid-unnecessary-VLAs.patch diff --git a/pkg/iproute2/patch/0010-ip-Fix-get_link_kind-when-linked-statically.patch b/pkg/iproute2/patch/0009-ip-Fix-get_link_kind-when-linked-statically.patch diff --git a/pkg/iproute2/patch/0011-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch b/pkg/iproute2/patch/0010-Use-alloca-instead-of-VLA-when-VLA-is-not-available.patch diff --git a/pkg/iproute2/patch/0012-Use-static-inline-function-for-min.patch b/pkg/iproute2/patch/0011-Use-static-inline-function-for-min.patch diff --git a/pkg/iproute2/patch/0014-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch b/pkg/iproute2/patch/0012-Prevent-redefinition-of-SIOCGSTAMP-and-SIOCGSTAMPNS.patch diff --git a/pkg/iproute2/patch/0016-Fix-overflow-check-for-strtod-and-strtoul.patch b/pkg/iproute2/patch/0013-Fix-overflow-check-for-strtod-and-strtoul.patch diff --git a/pkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch b/pkg/iproute2/patch/0013-Use-__typeof__-instead-of-typeof.patch @@ -1,86 +0,0 @@ -From 0d20d0e247e074dd3e8892053387295062c3c666 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Wed, 29 Jan 2020 15:36:37 -0800 -Subject: [PATCH] Use __typeof__ instead of typeof - ---- - include/list.h | 18 +++++++++--------- - lib/ll_map.c | 2 +- - 2 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/include/list.h b/include/list.h -index 7108cea7..36d73d96 100644 ---- a/include/list.h -+++ b/include/list.h -@@ -7,7 +7,7 @@ - - #ifdef __GNUC__ - #define container_of(ptr, type, member) ({ \ -- const typeof( ((type *)0)->member ) *__mptr = (ptr); \ -+ const __typeof__( ((type *)0)->member ) *__mptr = (ptr);\ - (type *)( (char *)__mptr - offsetof(type,member) );}) - #else - #define container_of(ptr, type, member) ( \ -@@ -65,24 +65,24 @@ static inline void list_del(struct list_head *entry) - list_entry((ptr)->prev, type, member) - - #define list_next_entry(pos, member) \ -- list_entry((pos)->member.next, typeof(*(pos)), member) -+ list_entry((pos)->member.next, __typeof__(*(pos)), member) - - #define list_prev_entry(pos, member) \ -- list_entry((pos)->member.prev, typeof(*(pos)), member) -+ list_entry((pos)->member.prev, __typeof__(*(pos)), member) - - #define list_for_each_entry(pos, head, member) \ -- for (pos = list_first_entry(head, typeof(*pos), member); \ -+ for (pos = list_first_entry(head, __typeof__(*pos), member); \ - &pos->member != (head); \ - pos = list_next_entry(pos, member)) - - #define list_for_each_entry_safe(pos, n, head, member) \ -- for (pos = list_first_entry(head, typeof(*pos), member), \ -+ for (pos = list_first_entry(head, __typeof__(*pos), member), \ - n = list_next_entry(pos, member); \ - &pos->member != (head); \ - pos = n, n = list_next_entry(n, member)) - - #define list_for_each_entry_reverse(pos, head, member) \ -- for (pos = list_last_entry(head, typeof(*pos), member); \ -+ for (pos = list_last_entry(head, __typeof(*pos)__, member); \ - &pos->member != (head); \ - pos = list_prev_entry(pos, member)) - -@@ -127,13 +127,13 @@ static inline int list_empty(const struct list_head *head) - pos = n) - - #define hlist_entry_safe(ptr, type, member) \ -- ({ typeof(ptr) ____ptr = (ptr); \ -+ ({ __typeof__(ptr) ____ptr = (ptr); \ - ____ptr ? hlist_entry(____ptr, type, member) : NULL; \ - }) - - #define hlist_for_each_entry(pos, head, member) \ -- for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\ -+ for (pos = hlist_entry_safe((head)->first, __typeof__(*(pos)), member);\ - pos; \ -- pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member)) -+ pos = hlist_entry_safe((pos)->member.next, __typeof__(*(pos)), member)) - - #endif /* __LIST_H__ */ -diff --git a/lib/ll_map.c b/lib/ll_map.c -index 7fe5f0bc..0f7305ab 100644 ---- a/lib/ll_map.c -+++ b/lib/ll_map.c -@@ -168,7 +168,7 @@ static void ll_altname_entries_update(struct ll_cache *parent_im, - * and if it does not fit 1:1, recreate the cached list - * from scratch. - */ -- im = list_first_entry(&parent_im->altnames_list, typeof(*im), -+ im = list_first_entry(&parent_im->altnames_list, __typeof__(*im), - altnames_list); - rem = RTA_PAYLOAD(proplist); - for (i = RTA_DATA(proplist); RTA_OK(i, rem); --- -2.44.0 - diff --git a/pkg/iproute2/patch/0017-Remove-flexible-array-member-in-embedded-struct.patch b/pkg/iproute2/patch/0014-Remove-flexible-array-member-in-embedded-struct.patch diff --git a/pkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch b/pkg/iproute2/patch/0015-Revert-change-of-BPF_F_-to-enum-constants.patch @@ -1,32 +0,0 @@ -From e53788b231f05d0383fa8433e972384028340bb4 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Tue, 2 Jun 2020 03:56:03 -0700 -Subject: [PATCH] Revert change of BPF_F_* to enum constants - ---- - include/uapi/linux/bpf.h | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h -index 0a2380a1..4a0d5760 100644 ---- a/include/uapi/linux/bpf.h -+++ b/include/uapi/linux/bpf.h -@@ -5970,12 +5970,10 @@ enum { - /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and - * BPF_FUNC_perf_event_read_value flags. - */ --enum { -- BPF_F_INDEX_MASK = 0xffffffffULL, -- BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK, -+#define BPF_F_INDEX_MASK 0xffffffffULL -+#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK - /* BPF_FUNC_perf_event_output for sk_buff input context. */ -- BPF_F_CTXLEN_MASK = (0xfffffULL << 32), --}; -+#define BPF_F_CTXLEN_MASK (0xfffffULL << 32) - - /* Current network namespace */ - enum { --- -2.44.0 - diff --git a/pkg/iproute2/ver b/pkg/iproute2/ver @@ -1 +1 @@ -6.8.0 r0 +6.8.0 r1 diff --git a/pkg/linux-headers/patch/0003-Prevent-zero-length-array-members-in-asound.h.patch b/pkg/linux-headers/patch/0002-Prevent-zero-length-array-members-in-asound.h.patch diff --git a/pkg/linux-headers/patch/0002-Revert-change-of-BPF_F_-to-enum-constants.patch b/pkg/linux-headers/patch/0002-Revert-change-of-BPF_F_-to-enum-constants.patch @@ -1,32 +0,0 @@ -From 72b27c48f468c547dcd93beae9041417c05ef655 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Tue, 2 Jun 2020 03:56:03 -0700 -Subject: [PATCH] Revert change of BPF_F_* to enum constants - ---- - include/uapi/linux/bpf.h | 8 +++----- - 1 file changed, 3 insertions(+), 5 deletions(-) - -diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h -index 754e68ca8744..11bef290a69e 100644 ---- a/include/uapi/linux/bpf.h -+++ b/include/uapi/linux/bpf.h -@@ -5970,12 +5970,10 @@ enum { - /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and - * BPF_FUNC_perf_event_read_value flags. - */ --enum { -- BPF_F_INDEX_MASK = 0xffffffffULL, -- BPF_F_CURRENT_CPU = BPF_F_INDEX_MASK, -+#define BPF_F_INDEX_MASK 0xffffffffULL -+#define BPF_F_CURRENT_CPU BPF_F_INDEX_MASK - /* BPF_FUNC_perf_event_output for sk_buff input context. */ -- BPF_F_CTXLEN_MASK = (0xfffffULL << 32), --}; -+#define BPF_F_CTXLEN_MASK (0xfffffULL << 32) - - /* Current network namespace */ - enum { --- -2.44.0 - diff --git a/pkg/linux-headers/patch/0004-nfc-uapi-remove-stray-semicolon-in-struct-declaratio.patch b/pkg/linux-headers/patch/0003-nfc-uapi-remove-stray-semicolon-in-struct-declaratio.patch diff --git a/pkg/linux-headers/ver b/pkg/linux-headers/ver @@ -1 +1 @@ -6.8 r0 +6.8 r1 diff --git a/pkg/strace/patch/0003-Make-tcp_sysent-a-static-inline-function.patch b/pkg/strace/patch/0002-Make-tcp_sysent-a-static-inline-function.patch diff --git a/pkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch b/pkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch @@ -1,349 +0,0 @@ -From 268084161926ad4d1d110a3a5432e7ffd4e92fdf Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Sat, 6 Jul 2019 01:33:01 -0700 -Subject: [PATCH] Use __typeof__ spelling of typeof - ---- - src/bpf.c | 10 +++++----- - src/btrfs.c | 12 ++++++------ - src/defs.h | 6 +++--- - src/fs_0x94_ioctl.c | 2 +- - src/fs_f_ioctl.c | 2 +- - src/landlock.c | 4 ++-- - src/list.h | 10 +++++----- - src/macros.h | 2 +- - src/print_fields.h | 2 +- - src/s390.c | 6 +++--- - src/tee.c | 2 +- - src/ubi.c | 2 +- - tests/btrfs.c | 2 +- - tests/fcntl-common.c | 2 +- - 14 files changed, 32 insertions(+), 32 deletions(-) - -diff --git a/src/bpf.c b/src/bpf.c -index bbcdceddd..690df570d 100644 ---- a/src/bpf.c -+++ b/src/bpf.c -@@ -1440,7 +1440,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) - tprint_struct_next(); - PRINT_FIELD_U(attr, target_btf_id); - } -- attr_size = offsetofend(typeof(attr), target_btf_id); -+ attr_size = offsetofend(__typeof__(attr), target_btf_id); - break; - - /* TODO: prog type == BPF_PROG_TYPE_TRACING */ -@@ -1456,7 +1456,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) - print_iter_info_array_member, 0); - tprint_struct_next(); - PRINT_FIELD_U(attr, iter_info_len); -- attr_size = offsetofend(typeof(attr), iter_info_len); -+ attr_size = offsetofend(__typeof__(attr), iter_info_len); - break; - } - -@@ -1468,7 +1468,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) - tprint_struct_begin(); - PRINT_FIELD_X(attr.perf_event, bpf_cookie); - tprint_struct_end(); -- attr_size = offsetofend(typeof(attr), perf_event.bpf_cookie); -+ attr_size = offsetofend(__typeof__(attr), perf_event.bpf_cookie); - break; - - /* TODO: prog type == BPF_PROG_TYPE_KPROBE */ -@@ -1508,7 +1508,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) - &buf.cookie, sizeof(buf.cookie), - tfetch_mem, print_xint_array_member, 0); - tprint_struct_end(); -- attr_size = offsetofend(typeof(attr), kprobe_multi.cookies); -+ attr_size = offsetofend(__typeof__(attr), kprobe_multi.cookies); - break; - } - -@@ -1518,7 +1518,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE) - * can pick up non-zero values in the union at the end - * of the link_create struct. - */ -- attr_size = offsetofend(typeof(attr), flags); -+ attr_size = offsetofend(__typeof__(attr), flags); - } - - print_bpf_link_create_end: -diff --git a/src/btrfs.c b/src/btrfs.c -index 31ee871b3..76d7a2bec 100644 ---- a/src/btrfs.c -+++ b/src/btrfs.c -@@ -216,7 +216,7 @@ btrfs_print_logical_ino_container(struct tcb *tcp, - tprint_more_data_follows(); - } else { - const uint64_t val_addr = -- inodes_addr + offsetof(typeof(container), val); -+ inodes_addr + offsetof(__typeof__(container), val); - uint64_t record[3]; - tprint_struct_next(); - tprints_field_name("val"); -@@ -257,7 +257,7 @@ btrfs_print_ino_path_container(struct tcb *tcp, - tprint_more_data_follows(); - } else { - uint64_t val_addr = -- fspath_addr + offsetof(typeof(container), val); -+ fspath_addr + offsetof(__typeof__(container), val); - uint64_t offset; - tprint_struct_next(); - tprints_field_name("val"); -@@ -298,7 +298,7 @@ btrfs_print_qgroup_inherit(struct tcb *const tcp, const kernel_ulong_t qgi_addr) - uint64_t record; - tprint_struct_next(); - tprints_field_name("qgroups"); -- print_array(tcp, qgi_addr + offsetof(typeof(inherit), qgroups), -+ print_array(tcp, qgi_addr + offsetof(__typeof__(inherit), qgroups), - inherit.num_qgroups, &record, sizeof(record), - tfetch_mem, print_uint_array_member, 0); - } -@@ -1170,7 +1170,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl, - PRINT_FIELD_OBJ_PTR(args, key, - print_btrfs_ioctl_search_key, - entering(tcp), !abbrev(tcp)); -- decode_search_arg_buf(tcp, arg + offsetof(typeof(args), buf), -+ decode_search_arg_buf(tcp, arg + offsetof(__typeof__(args), buf), - sizeof(args.buf), args.key.nr_items); - tprint_struct_end(); - if (entering(tcp)) -@@ -1206,7 +1206,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl, - entering(tcp), !abbrev(tcp)); - tprint_struct_next(); - PRINT_FIELD_U(args, buf_size); -- decode_search_arg_buf(tcp, arg + offsetof(typeof(args), buf), -+ decode_search_arg_buf(tcp, arg + offsetof(__typeof__(args), buf), - args.buf_size, args.key.nr_items); - tprint_struct_end(); - if (entering(tcp)) -@@ -1284,7 +1284,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl, - struct btrfs_ioctl_space_info info; - tprint_struct_next(); - tprints_field_name("spaces"); -- print_array(tcp, arg + offsetof(typeof(args), spaces), -+ print_array(tcp, arg + offsetof(__typeof__(args), spaces), - args.total_spaces, - &info, sizeof(info), tfetch_mem, - print_btrfs_ioctl_space_info, 0); -diff --git a/src/defs.h b/src/defs.h -index 465d58139..ae1d1d1dc 100644 ---- a/src/defs.h -+++ b/src/defs.h -@@ -1162,7 +1162,7 @@ print_local_array_ex(struct tcb *tcp, - # define print_local_array_upto(tcp_, start_addr_, upto_, print_func_) \ - print_local_array_ex((tcp_), (start_addr_), \ - CLAMP((upto_), 0, \ -- (typeof(upto_)) ARRAY_SIZE(start_addr_)), \ -+ (__typeof__(upto_)) ARRAY_SIZE(start_addr_)), \ - sizeof((start_addr_)[0]), (print_func_), \ - NULL, 0, NULL, NULL) - -@@ -2045,8 +2045,8 @@ scno_pers_is_valid(kernel_ulong_t scno, unsigned int pers) - - # define ILOG2_ITER_(val_, ret_, bit_) \ - do { \ -- typeof(ret_) shift_ = \ -- ((val_) > ((((typeof(val_)) 1) \ -+ __typeof__(ret_) shift_ = \ -+ ((val_) > ((((__typeof__(val_)) 1) \ - << (1 << (bit_))) - 1)) << (bit_); \ - (val_) >>= shift_; \ - (ret_) |= shift_; \ -diff --git a/src/fs_0x94_ioctl.c b/src/fs_0x94_ioctl.c -index 7aa170af0..b908ea1fb 100644 ---- a/src/fs_0x94_ioctl.c -+++ b/src/fs_0x94_ioctl.c -@@ -94,7 +94,7 @@ decode_file_dedupe_range(struct tcb *const tcp, const kernel_ulong_t arg) - if (abbrev(tcp) && range.dest_count > count) - limit = &count; - -- rc = print_array(tcp, arg + offsetof(typeof(range), info), -+ rc = print_array(tcp, arg + offsetof(__typeof__(range), info), - range.dest_count, &info, sizeof(info), - tfetch_mem, - print_file_dedupe_range_info, limit); -diff --git a/src/fs_f_ioctl.c b/src/fs_f_ioctl.c -index 7b51bc9f9..ee9a42754 100644 ---- a/src/fs_f_ioctl.c -+++ b/src/fs_f_ioctl.c -@@ -72,7 +72,7 @@ decode_fiemap(struct tcb *const tcp, const kernel_ulong_t arg) - struct fiemap_extent fe; - tprint_struct_next(); - tprints_field_name("fm_extents"); -- print_array(tcp, arg + offsetof(typeof(args), fm_extents), -+ print_array(tcp, arg + offsetof(__typeof__(args), fm_extents), - args.fm_mapped_extents, &fe, sizeof(fe), - tfetch_mem, print_fiemap_extent, 0); - } -diff --git a/src/landlock.c b/src/landlock.c -index 7ee44f84c..16a430de8 100644 ---- a/src/landlock.c -+++ b/src/landlock.c -@@ -21,9 +21,9 @@ print_landlock_ruleset_attr(struct tcb *tcp, const kernel_ulong_t addr, - { - struct landlock_ruleset_attr attr = { 0 }; - const size_t min_attr_size = -- offsetofend(typeof(attr), handled_access_fs); -+ offsetofend(__typeof__(attr), handled_access_fs); - const size_t max_attr_size = -- offsetofend(typeof(attr), handled_access_net); -+ offsetofend(__typeof__(attr), handled_access_net); - - if (size < min_attr_size) { - printaddr(addr); -diff --git a/src/list.h b/src/list.h -index 4de4cb3be..f4ec11f0e 100644 ---- a/src/list.h -+++ b/src/list.h -@@ -158,7 +158,7 @@ list_is_empty(const struct list_item *l) - * @param field Name of the field that holds the respective struct list_item. - */ - # define list_next(var, field) \ -- list_elem((var)->field.next, typeof(*(var)), field) -+ list_elem((var)->field.next, __typeof__(*(var)), field) - /** - * Get the previous element in a list. - * -@@ -166,7 +166,7 @@ list_is_empty(const struct list_item *l) - * @param field Name of the field that holds the respective struct list_item. - */ - # define list_prev(var, field) \ -- list_elem((var)->field.prev, typeof(*(var)), field) -+ list_elem((var)->field.prev, __typeof__(*(var)), field) - - /** - * Insert an item into a list. The item is placed as the next list item -@@ -280,7 +280,7 @@ list_replace(struct list_item *old, struct list_item *new) - * inside list items. - */ - # define list_foreach(var_, head_, field_) \ -- for (var_ = list_elem((head_)->next, typeof(*var_), field_); \ -+ for (var_ = list_elem((head_)->next, __typeof__(*var_), field_); \ - &(var_->field_) != (head_); var_ = list_next(var_, field_)) - - /** -@@ -293,8 +293,8 @@ list_replace(struct list_item *old, struct list_item *new) - * @param _tmp Temporary variable for storing pointer to the next item. - */ - # define list_foreach_safe(var_, head_, field_, _tmp) \ -- for (var_ = list_elem((head_)->next, typeof(*var_), field_), \ -- _tmp = list_elem((var_)->field_.next, typeof(*var_), field_); \ -+ for (var_ = list_elem((head_)->next, __typeof__(*var_), field_), \ -+ _tmp = list_elem((var_)->field_.next, __typeof__(*var_), field_); \ - &var_->field_ != head_; var_ = _tmp, _tmp = list_next(_tmp, field_)) - - #endif /* !STRACE_LIST_H */ -diff --git a/src/macros.h b/src/macros.h -index cb290c612..81cde400a 100644 ---- a/src/macros.h -+++ b/src/macros.h -@@ -62,7 +62,7 @@ - - # define sizeof_field(type_, member_) (sizeof(((type_ *)0)->member_)) - --# define typeof_field(type_, member_) typeof(((type_ *)0)->member_) -+# define typeof_field(type_, member_) __typeof__(((type_ *)0)->member_) - - # ifndef offsetofend - # define offsetofend(type_, member_) \ -diff --git a/src/print_fields.h b/src/print_fields.h -index 09548ce21..6a7e76982 100644 ---- a/src/print_fields.h -+++ b/src/print_fields.h -@@ -792,7 +792,7 @@ tprint_sysret_end(void) - # define MAYBE_PRINT_FIELD_LEN(print_prefix_, where_, field_, \ - len_, print_func_, ...) \ - do { \ -- unsigned int start = offsetof(typeof(where_), field_); \ -+ unsigned int start = offsetof(__typeof__(where_), field_); \ - unsigned int end = start + sizeof((where_).field_); \ - if (len_ > start) { \ - print_prefix_; \ -diff --git a/src/s390.c b/src/s390.c -index ca71730c4..455144fe7 100644 ---- a/src/s390.c -+++ b/src/s390.c -@@ -505,7 +505,7 @@ static void - print_sthyi_machine(struct tcb *tcp, struct sthyi_machine *hdr, uint16_t size, - bool *dummy) - { -- size_t last_decoded = offsetofend(typeof(*hdr), infmpman); -+ size_t last_decoded = offsetofend(__typeof__(*hdr), infmpman); - int cnt_val, name_val, id_val; - - CHECK_SIZE_EX(hdr, last_decoded, size, "machine structure"); -@@ -611,7 +611,7 @@ static void - print_sthyi_partition(struct tcb *tcp, struct sthyi_partition *hdr, - uint16_t size, bool *mt) - { -- size_t last_decoded = offsetofend(typeof(*hdr), infpabif); -+ size_t last_decoded = offsetofend(__typeof__(*hdr), infpabif); - int cnt_val, wcap_val, acap_val, id_val, lpar_val; - - *mt = false; -@@ -802,7 +802,7 @@ static void - print_sthyi_hypervisor(struct tcb *tcp, struct sthyi_hypervisor *hdr, - uint16_t size, int num, bool mt) - { -- size_t last_decoded = offsetofend(typeof(*hdr), infydifl); -+ size_t last_decoded = offsetofend(__typeof__(*hdr), infydifl); - - CHECK_SIZE_EX(hdr, last_decoded, size, "hypervisor %d structure", num); - -diff --git a/src/tee.c b/src/tee.c -index 25f6e76c5..c62566800 100644 ---- a/src/tee.c -+++ b/src/tee.c -@@ -33,7 +33,7 @@ struct tee_ioctl_shm_register_fd_data { - - #define TEE_FETCH_BUF_DATA(buf_, arg_, params_) \ - tee_fetch_buf_data(tcp, arg, &buf_, sizeof(arg_), \ -- &arg_, offsetof(typeof(arg_), num_params), \ -+ &arg_, offsetof(__typeof__(arg_), num_params), \ - params_) - - /* session id is printed as 0x%x in libteec */ -diff --git a/src/ubi.c b/src/ubi.c -index 11a435b10..e75377783 100644 ---- a/src/ubi.c -+++ b/src/ubi.c -@@ -76,7 +76,7 @@ static bool - print_ubi_rnvol_req_ent_array_member(struct tcb *tcp, void *elem_buf, - size_t elem_size, void *data) - { -- typeof(&((struct ubi_rnvol_req *) NULL)->ents[0]) p = elem_buf; -+ __typeof__(&((struct ubi_rnvol_req *) NULL)->ents[0]) p = elem_buf; - - tprint_struct_begin(); - PRINT_FIELD_D(*p, vol_id); -diff --git a/tests/btrfs.c b/tests/btrfs.c -index ab5bfae68..a3161875b 100644 ---- a/tests/btrfs.c -+++ b/tests/btrfs.c -@@ -876,7 +876,7 @@ btrfs_print_tree_search_buf(struct btrfs_ioctl_search_key *key, - printf("buf=["); - for (uint64_t i = 0; i < key->nr_items; ++i) { - struct btrfs_ioctl_search_header *sh; -- sh = (typeof(sh))(buf + off); -+ sh = (__typeof__(sh))(buf + off); - if (i) - printf(", "); - printf("{transid=%" PRI__u64 ", objectid=", -diff --git a/tests/fcntl-common.c b/tests/fcntl-common.c -index 20f92dd1d..aa6ecc8f5 100644 ---- a/tests/fcntl-common.c -+++ b/tests/fcntl-common.c -@@ -28,7 +28,7 @@ - #endif - - #ifdef HAVE_TYPEOF --# define TYPEOF_FLOCK_OFF_T typeof(((struct flock *) NULL)->l_len) -+# define TYPEOF_FLOCK_OFF_T __typeof__(((struct flock *) NULL)->l_len) - #else - # define TYPEOF_FLOCK_OFF_T off_t - #endif --- -2.44.0 - diff --git a/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch b/pkg/strace/patch/0003-Avoid-pointer-arithmetic-on-void.patch diff --git a/pkg/strace/patch/0004-Avoid-empty-initializer-lists.patch b/pkg/strace/patch/0004-Avoid-empty-initializer-lists.patch @@ -1,215 +0,0 @@ -From 70c04478b105ab15e3e3a4bfcfcf96ace104b32e Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Sat, 6 Jul 2019 01:54:05 -0700 -Subject: [PATCH] Avoid empty initializer lists - ---- - src/bpf.c | 4 ++-- - src/sched.c | 2 +- - src/signal.c | 2 +- - src/strace.c | 2 +- - tests/btrfs.c | 8 ++++---- - tests/clock_nanosleep.c | 2 +- - tests/nanosleep.c | 2 +- - tests/restart_syscall.c | 2 +- - tests/setrlimit.c | 2 +- - tests/timer_create.c | 2 +- - tests/wait4.c | 2 +- - tests/waitid.c | 2 +- - 12 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/src/bpf.c b/src/bpf.c -index 690df570d..16f2b7d31 100644 ---- a/src/bpf.c -+++ b/src/bpf.c -@@ -50,7 +50,7 @@ bpf_cmd_decoder(struct tcb *const tcp, \ - #define BEGIN_BPF_CMD_DECODER(bpf_cmd) \ - static DECL_BPF_CMD_DECODER(decode_ ## bpf_cmd) \ - { \ -- struct bpf_cmd ## _struct attr = {}; \ -+ struct bpf_cmd ## _struct attr = {0}; \ - size_t attr_size = bpf_cmd ## _struct_size; \ - const unsigned int len = MIN(size, attr_size); \ - memcpy(&attr, data, len); \ -@@ -161,7 +161,7 @@ print_ebpf_prog(struct tcb *const tcp, const uint64_t addr, const uint32_t len) - if (abbrev(tcp)) { - printaddr(addr); - } else { -- struct ebpf_insns_data eid = {}; -+ struct ebpf_insns_data eid = {0}; - struct ebpf_insn insn; - - print_array(tcp, addr, len, &insn, sizeof(insn), -diff --git a/src/sched.c b/src/sched.c -index 010366871..2dda5b872 100644 ---- a/src/sched.c -+++ b/src/sched.c -@@ -111,7 +111,7 @@ static void - print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr, - unsigned int usize) - { -- struct sched_attr attr = {}; -+ struct sched_attr attr = {0}; - unsigned int size; - bool is_set = false; - -diff --git a/src/signal.c b/src/signal.c -index 98f84d500..8680b10fb 100644 ---- a/src/signal.c -+++ b/src/signal.c -@@ -257,7 +257,7 @@ print_sigset_addr_len_limit(struct tcb *const tcp, const kernel_ulong_t addr, - printaddr(addr); - return; - } -- int mask[NSIG_BYTES / sizeof(int)] = {}; -+ int mask[NSIG_BYTES / sizeof(int)] = {0}; - if (umoven_or_printaddr(tcp, addr, len, mask)) - return; - tprints_string(sprintsigmask_n("", mask, len)); -diff --git a/src/strace.c b/src/strace.c -index 649b8d160..9c87e34ed 100644 ---- a/src/strace.c -+++ b/src/strace.c -@@ -3891,7 +3891,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig) - syscall_entering_finish(tcp, res); - return res; - } else { -- struct timespec ts = {}; -+ struct timespec ts = {0}; - int res = syscall_exiting_decode(tcp, &ts); - if (res != 0) { - res = syscall_exiting_trace(tcp, &ts, res); -diff --git a/tests/btrfs.c b/tests/btrfs.c -index a3161875b..88112e463 100644 ---- a/tests/btrfs.c -+++ b/tests/btrfs.c -@@ -313,7 +313,7 @@ btrfs_test_subvol_ioctls(void) - char *long_subvol_name; - void *bad_pointer = (void *) (unsigned long) 0xdeadbeeffffffeedULL; - uint64_t u64val = 0xdeadbeefbadc0dedULL; -- struct btrfs_ioctl_vol_args vol_args = {}; -+ struct btrfs_ioctl_vol_args vol_args = {0}; - struct btrfs_ioctl_vol_args_v2 vol_args_v2 = { - .fd = 2, - .flags = max_flags_plus_one(2), -@@ -554,7 +554,7 @@ btrfs_test_balance_ioctls(void) - .devid = 1, - }, - }; -- struct btrfs_ioctl_vol_args vol_args = {}; -+ struct btrfs_ioctl_vol_args vol_args = {0}; - - ioctl(-1, BTRFS_IOC_BALANCE_CTL, 1); - printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s)" RVAL_EBADF, -@@ -764,7 +764,7 @@ btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args, - static void - btrfs_test_defrag_ioctls(void) - { -- struct btrfs_ioctl_vol_args vol_args = {}; -+ struct btrfs_ioctl_vol_args vol_args = {0}; - struct btrfs_ioctl_defrag_range_args args = { - .start = 0, - .len = -1ULL, -@@ -1092,7 +1092,7 @@ btrfs_test_ino_lookup_ioctl(void) - static void - btrfs_test_space_info_ioctl(void) - { -- struct btrfs_ioctl_space_args args = {}; -+ struct btrfs_ioctl_space_args args = {0}; - - ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL); - printf("ioctl(-1, %s, NULL)" RVAL_EBADF, -diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c -index 13c3dad87..4638d492b 100644 ---- a/tests/clock_nanosleep.c -+++ b/tests/clock_nanosleep.c -@@ -39,7 +39,7 @@ main(void) - .ts = { .tv_sec = 0xc0de2, .tv_nsec = 0xc0de3 }, - .pad = { 0xdeadbeef, 0xbadc0ded } - }; -- const sigset_t set = {}; -+ const sigset_t set = {0}; - const struct sigaction act = { .sa_handler = handler }; - const struct itimerval itv = { - .it_interval.tv_usec = 222222, -diff --git a/tests/nanosleep.c b/tests/nanosleep.c -index 743105e80..2a7ddff5c 100644 ---- a/tests/nanosleep.c -+++ b/tests/nanosleep.c -@@ -53,7 +53,7 @@ main(void) - .ts = { .tv_sec = 0xc0de2, .tv_nsec = 0xc0de3 }, - .pad = { 0xdeadbeef, 0xbadc0ded } - }; -- const sigset_t set = {}; -+ const sigset_t set = {0}; - const struct sigaction act = { .sa_handler = handler }; - const struct itimerval itv = { .it_value.tv_usec = 111111 }; - -diff --git a/tests/restart_syscall.c b/tests/restart_syscall.c -index a9b1d2291..7fd7fb602 100644 ---- a/tests/restart_syscall.c -+++ b/tests/restart_syscall.c -@@ -26,7 +26,7 @@ main(void) - */ - error_msg_and_skip("x32 is broken"); - #else -- const sigset_t set = {}; -+ const sigset_t set = {0}; - const struct sigaction act = { .sa_handler = SIG_IGN }; - const struct itimerval itv = { .it_interval.tv_usec = 22222, - .it_value.tv_usec = 11111 }; -diff --git a/tests/setrlimit.c b/tests/setrlimit.c -index d4953f6f8..60d54fbd8 100644 ---- a/tests/setrlimit.c -+++ b/tests/setrlimit.c -@@ -39,7 +39,7 @@ main(void) - printf("setrlimit(%s, NULL) = %s\n", xlat->str, sprintrc(rc)); - # endif - -- struct rlimit libc_rlim = {}; -+ struct rlimit libc_rlim = {0}; - if (getrlimit((int) res, &libc_rlim)) - continue; - rlimit[0] = libc_rlim.rlim_cur; -diff --git a/tests/timer_create.c b/tests/timer_create.c -index e4357b2cf..8d6cd415f 100644 ---- a/tests/timer_create.c -+++ b/tests/timer_create.c -@@ -24,7 +24,7 @@ main(void) - printf("timer_create(CLOCK_REALTIME, NULL, NULL) = %s\n", - sprintrc(-1)); - -- int tid[4] = {}; -+ int tid[4] = {0}; - struct_sigevent sev = { - .sigev_notify = 0xdefaced, - .sigev_signo = 0xfacefeed, -diff --git a/tests/wait4.c b/tests/wait4.c -index faf9423f8..eacee2366 100644 ---- a/tests/wait4.c -+++ b/tests/wait4.c -@@ -89,7 +89,7 @@ k_wait4(const unsigned int pid, void const *wstatus, - static pid_t - do_wait4(pid_t pid, int *wstatus, int options, kernel_rusage_t *ru) - { -- sigset_t mask = {}; -+ sigset_t mask = {0}; - sigaddset(&mask, SIGCHLD); - - assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0); -diff --git a/tests/waitid.c b/tests/waitid.c -index 1ed763840..fef941874 100644 ---- a/tests/waitid.c -+++ b/tests/waitid.c -@@ -146,7 +146,7 @@ do_waitid(const unsigned int idtype, - const unsigned int options, - const kernel_rusage_t *const rusage) - { -- sigset_t mask = {}; -+ sigset_t mask = {0}; - sigaddset(&mask, SIGCHLD); - - assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0); --- -2.44.0 - diff --git a/pkg/strace/patch/0006-Avoid-empty-struct-definition.patch b/pkg/strace/patch/0004-Avoid-empty-struct-definition.patch diff --git a/pkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch b/pkg/strace/patch/0005-Don-t-omit-second-operand-to-operator.patch diff --git a/pkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch b/pkg/strace/patch/0006-Avoid-unnecessary-VLAs.patch diff --git a/pkg/strace/patch/0009-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch b/pkg/strace/patch/0007-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch diff --git a/pkg/strace/patch/0010-Use-alloca-when-VLAs-aren-t-available.patch b/pkg/strace/patch/0008-Use-alloca-when-VLAs-aren-t-available.patch diff --git a/pkg/strace/patch/0011-Avoid-index-ranges.patch b/pkg/strace/patch/0009-Avoid-index-ranges.patch diff --git a/pkg/strace/ver b/pkg/strace/ver @@ -1 +1 @@ -6.8 r0 +6.8 r1 diff --git a/pkg/u-boot/patch/0004-Avoid-pointer-arithmetic-on-void.patch b/pkg/u-boot/patch/0002-Avoid-pointer-arithmetic-on-void.patch diff --git a/pkg/u-boot/patch/0002-Use-__typeof__-instead-of-typeof.patch b/pkg/u-boot/patch/0002-Use-__typeof__-instead-of-typeof.patch @@ -1,27 +0,0 @@ -From 62f25c7293254bcb465c6c85bda61bff4630b8c8 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Sat, 1 May 2021 00:57:30 -0700 -Subject: [PATCH] Use __typeof__ instead of typeof - -The compiler may not define typeof in strict C mode to prevent -namespace polution. ---- - tools/imagetool.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/imagetool.h b/tools/imagetool.h -index 2801ea9e9f..bbdf82877b 100644 ---- a/tools/imagetool.h -+++ b/tools/imagetool.h -@@ -26,7 +26,7 @@ - #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) - - #define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) --#define ALIGN(x, a) __ALIGN_MASK((x), (typeof(x))(a) - 1) -+#define ALIGN(x, a) __ALIGN_MASK((x), (__typeof__(x))(a) - 1) - - #define IH_ARCH_DEFAULT IH_ARCH_INVALID - --- -2.31.1 - diff --git a/pkg/u-boot/patch/0003-Avoid-empty-initializer-lists.patch b/pkg/u-boot/patch/0003-Avoid-empty-initializer-lists.patch @@ -1,49 +0,0 @@ -From e5643a0cc9d661643541d6c965ac0ea59a77db75 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Sat, 1 May 2021 01:01:49 -0700 -Subject: [PATCH] Avoid empty initializer lists - -These are not allowed in ISO C. ---- - common/image.c | 2 +- - tools/kwbimage.c | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/common/image.c b/common/image.c -index 51854aae5d..1610c9c5c0 100644 ---- a/common/image.c -+++ b/common/image.c -@@ -216,7 +216,7 @@ static const struct comp_magic_map image_comp[] = { - { IH_COMP_GZIP, "gzip", {0x1f, 0x8b},}, - { IH_COMP_LZMA, "lzma", {0x5d, 0x00},}, - { IH_COMP_LZO, "lzo", {0x89, 0x4c},}, -- { IH_COMP_NONE, "none", {}, }, -+ { IH_COMP_NONE, "none", {0}, }, - }; - - static const struct table_info table_info[IH_COUNT] = { -diff --git a/tools/kwbimage.c b/tools/kwbimage.c -index 02fd0c949f..11b174a026 100644 ---- a/tools/kwbimage.c -+++ b/tools/kwbimage.c -@@ -70,7 +70,7 @@ struct boot_mode boot_modes[] = { - { 0x9C, "pex" }, - { 0x69, "uart" }, - { 0xAE, "sdio" }, -- {}, -+ { 0 }, - }; - - struct nand_ecc_mode { -@@ -83,7 +83,7 @@ struct nand_ecc_mode nand_ecc_modes[] = { - { 0x01, "hamming" }, - { 0x02, "rs" }, - { 0x03, "disabled" }, -- {}, -+ { 0 }, - }; - - /* Used to identify an undefined execution or destination address */ --- -2.31.1 - diff --git a/pkg/u-boot/patch/0005-Remove-use-of-statement-expressions.patch b/pkg/u-boot/patch/0003-Remove-use-of-statement-expressions.patch diff --git a/pkg/u-boot/patch/0006-Use-__bswap32-instead-of-__builtin_bswap32.patch b/pkg/u-boot/patch/0004-Use-__bswap32-instead-of-__builtin_bswap32.patch diff --git a/pkg/u-boot/ver b/pkg/u-boot/ver @@ -1 +1 @@ -2021.04 r1 +2021.04 r2