From: Jiri Olsa <olsajiri@gmail.com>
To: Andrii Nakryiko <andrii@kernel.org>
Cc: bpf@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net,
martin.lau@kernel.org, kernel-team@meta.com
Subject: Re: [PATCH bpf-next 1/3] selftests/bpf: fix compiler warnings reported in -O2 mode
Date: Thu, 5 Oct 2023 09:21:15 +0200 [thread overview]
Message-ID: <ZR5j6zHoEuifv/1C@krava> (raw)
In-Reply-To: <20231004001750.2939898-1-andrii@kernel.org>
On Tue, Oct 03, 2023 at 05:17:48PM -0700, Andrii Nakryiko wrote:
> Fix a bunch of potentially unitialized variable usage warnings that are
> reported by GCC in -O2 mode. Also silence overzealous stringop-truncation
> class of warnings.
>
> Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
there's now small conflict in xskxceiver.c change on latest bpf-next/master,
but anyway looks good
Acked-by: Jiri Olsa <jolsa@kernel.org>
jirka
> ---
> tools/testing/selftests/bpf/Makefile | 4 +++-
> .../selftests/bpf/map_tests/map_in_map_batch_ops.c | 4 ++--
> tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c | 4 ++--
> tools/testing/selftests/bpf/prog_tests/connect_ping.c | 4 ++--
> tools/testing/selftests/bpf/prog_tests/linked_list.c | 2 +-
> tools/testing/selftests/bpf/prog_tests/lwt_helpers.h | 3 ++-
> tools/testing/selftests/bpf/prog_tests/queue_stack_map.c | 2 +-
> tools/testing/selftests/bpf/prog_tests/sockmap_basic.c | 8 ++++----
> tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h | 2 +-
> tools/testing/selftests/bpf/prog_tests/sockmap_listen.c | 4 ++--
> tools/testing/selftests/bpf/prog_tests/xdp_metadata.c | 2 +-
> tools/testing/selftests/bpf/test_loader.c | 4 ++--
> tools/testing/selftests/bpf/xdp_features.c | 4 ++--
> tools/testing/selftests/bpf/xdp_hw_metadata.c | 2 +-
> tools/testing/selftests/bpf/xskxceiver.c | 2 +-
> 15 files changed, 27 insertions(+), 24 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
> index 47365161b6fc..a25e262dbc69 100644
> --- a/tools/testing/selftests/bpf/Makefile
> +++ b/tools/testing/selftests/bpf/Makefile
> @@ -27,7 +27,9 @@ endif
> BPF_GCC ?= $(shell command -v bpf-gcc;)
> SAN_CFLAGS ?=
> SAN_LDFLAGS ?= $(SAN_CFLAGS)
> -CFLAGS += -g -O0 -rdynamic -Wall -Werror $(GENFLAGS) $(SAN_CFLAGS) \
> +CFLAGS += -g -O0 -rdynamic \
> + -Wall -Werror \
> + $(GENFLAGS) $(SAN_CFLAGS) \
> -I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR) \
> -I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT)
> LDFLAGS += $(SAN_LDFLAGS)
> diff --git a/tools/testing/selftests/bpf/map_tests/map_in_map_batch_ops.c b/tools/testing/selftests/bpf/map_tests/map_in_map_batch_ops.c
> index 16f1671e4bde..66191ae9863c 100644
> --- a/tools/testing/selftests/bpf/map_tests/map_in_map_batch_ops.c
> +++ b/tools/testing/selftests/bpf/map_tests/map_in_map_batch_ops.c
> @@ -33,11 +33,11 @@ static void create_inner_maps(enum bpf_map_type map_type,
> {
> int map_fd, map_index, ret;
> __u32 map_key = 0, map_id;
> - char map_name[15];
> + char map_name[16];
>
> for (map_index = 0; map_index < OUTER_MAP_ENTRIES; map_index++) {
> memset(map_name, 0, sizeof(map_name));
> - sprintf(map_name, "inner_map_fd_%d", map_index);
> + snprintf(map_name, sizeof(map_name), "inner_map_fd_%d", map_index);
> map_fd = bpf_map_create(map_type, map_name, sizeof(__u32),
> sizeof(__u32), 1, NULL);
> CHECK(map_fd < 0,
> diff --git a/tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c b/tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
> index d2d9e965eba5..053f4d6da77a 100644
> --- a/tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
> +++ b/tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c
> @@ -193,8 +193,8 @@ static int setup_progs(struct bloom_filter_map **out_skel, __u32 **out_rand_vals
>
> void test_bloom_filter_map(void)
> {
> - __u32 *rand_vals, nr_rand_vals;
> - struct bloom_filter_map *skel;
> + __u32 *rand_vals = NULL, nr_rand_vals = 0;
> + struct bloom_filter_map *skel = NULL;
> int err;
>
> test_fail_cases();
> diff --git a/tools/testing/selftests/bpf/prog_tests/connect_ping.c b/tools/testing/selftests/bpf/prog_tests/connect_ping.c
> index 289218c2216c..40fe571f2fe7 100644
> --- a/tools/testing/selftests/bpf/prog_tests/connect_ping.c
> +++ b/tools/testing/selftests/bpf/prog_tests/connect_ping.c
> @@ -28,9 +28,9 @@ static void subtest(int cgroup_fd, struct connect_ping *skel,
> .sin6_family = AF_INET6,
> .sin6_addr = IN6ADDR_LOOPBACK_INIT,
> };
> - struct sockaddr *sa;
> + struct sockaddr *sa = NULL;
> socklen_t sa_len;
> - int protocol;
> + int protocol = -1;
> int sock_fd;
>
> switch (family) {
> diff --git a/tools/testing/selftests/bpf/prog_tests/linked_list.c b/tools/testing/selftests/bpf/prog_tests/linked_list.c
> index db3bf6bbe01a..69dc31383b78 100644
> --- a/tools/testing/selftests/bpf/prog_tests/linked_list.c
> +++ b/tools/testing/selftests/bpf/prog_tests/linked_list.c
> @@ -268,7 +268,7 @@ static struct btf *init_btf(void)
>
> static void list_and_rb_node_same_struct(bool refcount_field)
> {
> - int bpf_rb_node_btf_id, bpf_refcount_btf_id, foo_btf_id;
> + int bpf_rb_node_btf_id, bpf_refcount_btf_id = 0, foo_btf_id;
> struct btf *btf;
> int id, err;
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/lwt_helpers.h b/tools/testing/selftests/bpf/prog_tests/lwt_helpers.h
> index 61333f2a03f9..e9190574e79f 100644
> --- a/tools/testing/selftests/bpf/prog_tests/lwt_helpers.h
> +++ b/tools/testing/selftests/bpf/prog_tests/lwt_helpers.h
> @@ -49,7 +49,8 @@ static int open_tuntap(const char *dev_name, bool need_mac)
> return -1;
>
> ifr.ifr_flags = IFF_NO_PI | (need_mac ? IFF_TAP : IFF_TUN);
> - memcpy(ifr.ifr_name, dev_name, IFNAMSIZ);
> + strncpy(ifr.ifr_name, dev_name, IFNAMSIZ - 1);
> + ifr.ifr_name[IFNAMSIZ - 1] = '\0';
>
> err = ioctl(fd, TUNSETIFF, &ifr);
> if (!ASSERT_OK(err, "ioctl(TUNSETIFF)")) {
> diff --git a/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c b/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c
> index 722c5f2a7776..a043af9cd6d9 100644
> --- a/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c
> +++ b/tools/testing/selftests/bpf/prog_tests/queue_stack_map.c
> @@ -14,7 +14,7 @@ static void test_queue_stack_map_by_type(int type)
> int i, err, prog_fd, map_in_fd, map_out_fd;
> char file[32], buf[128];
> struct bpf_object *obj;
> - struct iphdr iph;
> + struct iphdr iph = {};
> LIBBPF_OPTS(bpf_test_run_opts, topts,
> .data_in = &pkt_v4,
> .data_size_in = sizeof(pkt_v4),
> diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c b/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
> index 064cc5e8d9ad..2535d0653cc8 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
> +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_basic.c
> @@ -359,7 +359,7 @@ static void test_sockmap_progs_query(enum bpf_attach_type attach_type)
> static void test_sockmap_skb_verdict_shutdown(void)
> {
> struct epoll_event ev, events[MAX_EVENTS];
> - int n, err, map, verdict, s, c1, p1;
> + int n, err, map, verdict, s, c1 = -1, p1 = -1;
> struct test_sockmap_pass_prog *skel;
> int epollfd;
> int zero = 0;
> @@ -414,9 +414,9 @@ static void test_sockmap_skb_verdict_shutdown(void)
> static void test_sockmap_skb_verdict_fionread(bool pass_prog)
> {
> int expected, zero = 0, sent, recvd, avail;
> - int err, map, verdict, s, c0, c1, p0, p1;
> - struct test_sockmap_pass_prog *pass;
> - struct test_sockmap_drop_prog *drop;
> + int err, map, verdict, s, c0 = -1, c1 = -1, p0 = -1, p1 = -1;
> + struct test_sockmap_pass_prog *pass = NULL;
> + struct test_sockmap_drop_prog *drop = NULL;
> char buf[256] = "0123456789";
>
> if (pass_prog) {
> diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h b/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h
> index 36d829a65aa4..e880f97bc44d 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h
> +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_helpers.h
> @@ -378,7 +378,7 @@ static inline int enable_reuseport(int s, int progfd)
> static inline int socket_loopback_reuseport(int family, int sotype, int progfd)
> {
> struct sockaddr_storage addr;
> - socklen_t len;
> + socklen_t len = 0;
> int err, s;
>
> init_addr_loopback(family, &addr, &len);
> diff --git a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
> index 8df8cbb447f1..e08e590b2cf8 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
> +++ b/tools/testing/selftests/bpf/prog_tests/sockmap_listen.c
> @@ -73,7 +73,7 @@ static void test_insert_bound(struct test_sockmap_listen *skel __always_unused,
> int family, int sotype, int mapfd)
> {
> struct sockaddr_storage addr;
> - socklen_t len;
> + socklen_t len = 0;
> u32 key = 0;
> u64 value;
> int err, s;
> @@ -871,7 +871,7 @@ static void test_msg_redir_to_listening(struct test_sockmap_listen *skel,
>
> static void redir_partial(int family, int sotype, int sock_map, int parser_map)
> {
> - int s, c0, c1, p0, p1;
> + int s, c0 = -1, c1 = -1, p0 = -1, p1 = -1;
> int err, n, key, value;
> char buf[] = "abc";
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c b/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
> index 626c461fa34d..4439ba9392f8 100644
> --- a/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
> +++ b/tools/testing/selftests/bpf/prog_tests/xdp_metadata.c
> @@ -226,7 +226,7 @@ static int verify_xsk_metadata(struct xsk *xsk)
> __u64 comp_addr;
> void *data;
> __u64 addr;
> - __u32 idx;
> + __u32 idx = 0;
> int ret;
>
> ret = recvfrom(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, NULL);
> diff --git a/tools/testing/selftests/bpf/test_loader.c b/tools/testing/selftests/bpf/test_loader.c
> index b4edd8454934..37ffa57f28a1 100644
> --- a/tools/testing/selftests/bpf/test_loader.c
> +++ b/tools/testing/selftests/bpf/test_loader.c
> @@ -69,7 +69,7 @@ static int tester_init(struct test_loader *tester)
> {
> if (!tester->log_buf) {
> tester->log_buf_sz = TEST_LOADER_LOG_BUF_SZ;
> - tester->log_buf = malloc(tester->log_buf_sz);
> + tester->log_buf = calloc(tester->log_buf_sz, 1);
> if (!ASSERT_OK_PTR(tester->log_buf, "tester_log_buf"))
> return -ENOMEM;
> }
> @@ -538,7 +538,7 @@ void run_subtest(struct test_loader *tester,
> bool unpriv)
> {
> struct test_subspec *subspec = unpriv ? &spec->unpriv : &spec->priv;
> - struct bpf_program *tprog, *tprog_iter;
> + struct bpf_program *tprog = NULL, *tprog_iter;
> struct test_spec *spec_iter;
> struct cap_state caps = {};
> struct bpf_object *tobj;
> diff --git a/tools/testing/selftests/bpf/xdp_features.c b/tools/testing/selftests/bpf/xdp_features.c
> index b449788fbd39..595c79141cf3 100644
> --- a/tools/testing/selftests/bpf/xdp_features.c
> +++ b/tools/testing/selftests/bpf/xdp_features.c
> @@ -360,9 +360,9 @@ static int recv_msg(int sockfd, void *buf, size_t bufsize, void *val,
> static int dut_run(struct xdp_features *skel)
> {
> int flags = XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_DRV_MODE;
> - int state, err, *sockfd, ctrl_sockfd, echo_sockfd;
> + int state, err = 0, *sockfd, ctrl_sockfd, echo_sockfd;
> struct sockaddr_storage ctrl_addr;
> - pthread_t dut_thread;
> + pthread_t dut_thread = 0;
> socklen_t addrlen;
>
> sockfd = start_reuseport_server(AF_INET6, SOCK_STREAM, NULL,
> diff --git a/tools/testing/selftests/bpf/xdp_hw_metadata.c b/tools/testing/selftests/bpf/xdp_hw_metadata.c
> index 613321eb84c1..17c980138796 100644
> --- a/tools/testing/selftests/bpf/xdp_hw_metadata.c
> +++ b/tools/testing/selftests/bpf/xdp_hw_metadata.c
> @@ -234,7 +234,7 @@ static int verify_metadata(struct xsk *rx_xsk, int rxq, int server_fd, clockid_t
> struct pollfd fds[rxq + 1];
> __u64 comp_addr;
> __u64 addr;
> - __u32 idx;
> + __u32 idx = 0;
> int ret;
> int i;
>
> diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
> index 43e0a5796929..b0ee1307a63b 100644
> --- a/tools/testing/selftests/bpf/xskxceiver.c
> +++ b/tools/testing/selftests/bpf/xskxceiver.c
> @@ -1023,7 +1023,7 @@ static int receive_pkts(struct test_spec *test, struct pollfd *fds)
> pkt = pkt_stream_get_next_rx_pkt(pkt_stream, &pkts_sent);
> while (pkt) {
> u32 frags_processed = 0, nb_frags = 0, pkt_len = 0;
> - u64 first_addr;
> + u64 first_addr = 0;
>
> ret = gettimeofday(&tv_now, NULL);
> if (ret)
> --
> 2.34.1
>
>
next prev parent reply other threads:[~2023-10-05 7:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-04 0:17 [PATCH bpf-next 1/3] selftests/bpf: fix compiler warnings reported in -O2 mode Andrii Nakryiko
2023-10-04 0:17 ` [PATCH bpf-next 2/3] selftests/bpf: support building selftests in optimized " Andrii Nakryiko
2023-10-04 8:27 ` Jiri Olsa
2023-10-04 17:21 ` Andrii Nakryiko
2023-10-05 7:19 ` Jiri Olsa
2023-10-05 9:04 ` Alan Maguire
2023-10-06 17:55 ` Andrii Nakryiko
2023-10-06 17:56 ` Andrii Nakryiko
2023-10-04 0:17 ` [PATCH bpf-next 3/3] selftests/bpf: don't truncate #test/subtest field Andrii Nakryiko
2023-10-05 7:21 ` Jiri Olsa
2023-10-05 7:21 ` Jiri Olsa [this message]
2023-10-06 18:20 ` [PATCH bpf-next 1/3] selftests/bpf: fix compiler warnings reported in -O2 mode patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZR5j6zHoEuifv/1C@krava \
--to=olsajiri@gmail.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=kernel-team@meta.com \
--cc=martin.lau@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox