selftests/bpf: Fix compiler warnings reported in -O2 mode
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> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Jiri Olsa <jolsa@kernel.org> Link: https://lore.kernel.org/bpf/20231006175744.3136675-1-andrii@kernel.org
This commit is contained in:
parent
bc5bc309db
commit
925a01577e
@ -27,7 +27,9 @@ endif
|
|||||||
BPF_GCC ?= $(shell command -v bpf-gcc;)
|
BPF_GCC ?= $(shell command -v bpf-gcc;)
|
||||||
SAN_CFLAGS ?=
|
SAN_CFLAGS ?=
|
||||||
SAN_LDFLAGS ?= $(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$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR) \
|
||||||
-I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT)
|
-I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT)
|
||||||
LDFLAGS += $(SAN_LDFLAGS)
|
LDFLAGS += $(SAN_LDFLAGS)
|
||||||
|
@ -33,11 +33,11 @@ static void create_inner_maps(enum bpf_map_type map_type,
|
|||||||
{
|
{
|
||||||
int map_fd, map_index, ret;
|
int map_fd, map_index, ret;
|
||||||
__u32 map_key = 0, map_id;
|
__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++) {
|
for (map_index = 0; map_index < OUTER_MAP_ENTRIES; map_index++) {
|
||||||
memset(map_name, 0, sizeof(map_name));
|
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),
|
map_fd = bpf_map_create(map_type, map_name, sizeof(__u32),
|
||||||
sizeof(__u32), 1, NULL);
|
sizeof(__u32), 1, NULL);
|
||||||
CHECK(map_fd < 0,
|
CHECK(map_fd < 0,
|
||||||
|
@ -193,8 +193,8 @@ error:
|
|||||||
|
|
||||||
void test_bloom_filter_map(void)
|
void test_bloom_filter_map(void)
|
||||||
{
|
{
|
||||||
__u32 *rand_vals, nr_rand_vals;
|
__u32 *rand_vals = NULL, nr_rand_vals = 0;
|
||||||
struct bloom_filter_map *skel;
|
struct bloom_filter_map *skel = NULL;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
test_fail_cases();
|
test_fail_cases();
|
||||||
|
@ -28,9 +28,9 @@ static void subtest(int cgroup_fd, struct connect_ping *skel,
|
|||||||
.sin6_family = AF_INET6,
|
.sin6_family = AF_INET6,
|
||||||
.sin6_addr = IN6ADDR_LOOPBACK_INIT,
|
.sin6_addr = IN6ADDR_LOOPBACK_INIT,
|
||||||
};
|
};
|
||||||
struct sockaddr *sa;
|
struct sockaddr *sa = NULL;
|
||||||
socklen_t sa_len;
|
socklen_t sa_len;
|
||||||
int protocol;
|
int protocol = -1;
|
||||||
int sock_fd;
|
int sock_fd;
|
||||||
|
|
||||||
switch (family) {
|
switch (family) {
|
||||||
|
@ -268,7 +268,7 @@ end:
|
|||||||
|
|
||||||
static void list_and_rb_node_same_struct(bool refcount_field)
|
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;
|
struct btf *btf;
|
||||||
int id, err;
|
int id, err;
|
||||||
|
|
||||||
|
@ -49,7 +49,8 @@ static int open_tuntap(const char *dev_name, bool need_mac)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
ifr.ifr_flags = IFF_NO_PI | (need_mac ? IFF_TAP : IFF_TUN);
|
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);
|
err = ioctl(fd, TUNSETIFF, &ifr);
|
||||||
if (!ASSERT_OK(err, "ioctl(TUNSETIFF)")) {
|
if (!ASSERT_OK(err, "ioctl(TUNSETIFF)")) {
|
||||||
|
@ -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;
|
int i, err, prog_fd, map_in_fd, map_out_fd;
|
||||||
char file[32], buf[128];
|
char file[32], buf[128];
|
||||||
struct bpf_object *obj;
|
struct bpf_object *obj;
|
||||||
struct iphdr iph;
|
struct iphdr iph = {};
|
||||||
LIBBPF_OPTS(bpf_test_run_opts, topts,
|
LIBBPF_OPTS(bpf_test_run_opts, topts,
|
||||||
.data_in = &pkt_v4,
|
.data_in = &pkt_v4,
|
||||||
.data_size_in = sizeof(pkt_v4),
|
.data_size_in = sizeof(pkt_v4),
|
||||||
|
@ -359,7 +359,7 @@ out:
|
|||||||
static void test_sockmap_skb_verdict_shutdown(void)
|
static void test_sockmap_skb_verdict_shutdown(void)
|
||||||
{
|
{
|
||||||
struct epoll_event ev, events[MAX_EVENTS];
|
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;
|
struct test_sockmap_pass_prog *skel;
|
||||||
int epollfd;
|
int epollfd;
|
||||||
int zero = 0;
|
int zero = 0;
|
||||||
@ -414,9 +414,9 @@ out:
|
|||||||
static void test_sockmap_skb_verdict_fionread(bool pass_prog)
|
static void test_sockmap_skb_verdict_fionread(bool pass_prog)
|
||||||
{
|
{
|
||||||
int expected, zero = 0, sent, recvd, avail;
|
int expected, zero = 0, sent, recvd, avail;
|
||||||
int err, map, verdict, s, c0, c1, p0, p1;
|
int err, map, verdict, s, c0 = -1, c1 = -1, p0 = -1, p1 = -1;
|
||||||
struct test_sockmap_pass_prog *pass;
|
struct test_sockmap_pass_prog *pass = NULL;
|
||||||
struct test_sockmap_drop_prog *drop;
|
struct test_sockmap_drop_prog *drop = NULL;
|
||||||
char buf[256] = "0123456789";
|
char buf[256] = "0123456789";
|
||||||
|
|
||||||
if (pass_prog) {
|
if (pass_prog) {
|
||||||
|
@ -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)
|
static inline int socket_loopback_reuseport(int family, int sotype, int progfd)
|
||||||
{
|
{
|
||||||
struct sockaddr_storage addr;
|
struct sockaddr_storage addr;
|
||||||
socklen_t len;
|
socklen_t len = 0;
|
||||||
int err, s;
|
int err, s;
|
||||||
|
|
||||||
init_addr_loopback(family, &addr, &len);
|
init_addr_loopback(family, &addr, &len);
|
||||||
|
@ -73,7 +73,7 @@ static void test_insert_bound(struct test_sockmap_listen *skel __always_unused,
|
|||||||
int family, int sotype, int mapfd)
|
int family, int sotype, int mapfd)
|
||||||
{
|
{
|
||||||
struct sockaddr_storage addr;
|
struct sockaddr_storage addr;
|
||||||
socklen_t len;
|
socklen_t len = 0;
|
||||||
u32 key = 0;
|
u32 key = 0;
|
||||||
u64 value;
|
u64 value;
|
||||||
int err, s;
|
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)
|
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;
|
int err, n, key, value;
|
||||||
char buf[] = "abc";
|
char buf[] = "abc";
|
||||||
|
|
||||||
|
@ -226,7 +226,7 @@ static int verify_xsk_metadata(struct xsk *xsk)
|
|||||||
__u64 comp_addr;
|
__u64 comp_addr;
|
||||||
void *data;
|
void *data;
|
||||||
__u64 addr;
|
__u64 addr;
|
||||||
__u32 idx;
|
__u32 idx = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ret = recvfrom(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, NULL);
|
ret = recvfrom(xsk_socket__fd(xsk->socket), NULL, 0, MSG_DONTWAIT, NULL, NULL);
|
||||||
|
@ -69,7 +69,7 @@ static int tester_init(struct test_loader *tester)
|
|||||||
{
|
{
|
||||||
if (!tester->log_buf) {
|
if (!tester->log_buf) {
|
||||||
tester->log_buf_sz = TEST_LOADER_LOG_BUF_SZ;
|
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"))
|
if (!ASSERT_OK_PTR(tester->log_buf, "tester_log_buf"))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
@ -538,7 +538,7 @@ void run_subtest(struct test_loader *tester,
|
|||||||
bool unpriv)
|
bool unpriv)
|
||||||
{
|
{
|
||||||
struct test_subspec *subspec = unpriv ? &spec->unpriv : &spec->priv;
|
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 test_spec *spec_iter;
|
||||||
struct cap_state caps = {};
|
struct cap_state caps = {};
|
||||||
struct bpf_object *tobj;
|
struct bpf_object *tobj;
|
||||||
|
@ -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)
|
static int dut_run(struct xdp_features *skel)
|
||||||
{
|
{
|
||||||
int flags = XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_DRV_MODE;
|
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;
|
struct sockaddr_storage ctrl_addr;
|
||||||
pthread_t dut_thread;
|
pthread_t dut_thread = 0;
|
||||||
socklen_t addrlen;
|
socklen_t addrlen;
|
||||||
|
|
||||||
sockfd = start_reuseport_server(AF_INET6, SOCK_STREAM, NULL,
|
sockfd = start_reuseport_server(AF_INET6, SOCK_STREAM, NULL,
|
||||||
|
@ -234,7 +234,7 @@ static int verify_metadata(struct xsk *rx_xsk, int rxq, int server_fd, clockid_t
|
|||||||
struct pollfd fds[rxq + 1];
|
struct pollfd fds[rxq + 1];
|
||||||
__u64 comp_addr;
|
__u64 comp_addr;
|
||||||
__u64 addr;
|
__u64 addr;
|
||||||
__u32 idx;
|
__u32 idx = 0;
|
||||||
int ret;
|
int ret;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -1049,7 +1049,7 @@ static int __receive_pkts(struct test_spec *test, struct xsk_socket_info *xsk)
|
|||||||
struct xsk_umem_info *umem = xsk->umem;
|
struct xsk_umem_info *umem = xsk->umem;
|
||||||
struct pollfd fds = { };
|
struct pollfd fds = { };
|
||||||
struct pkt *pkt;
|
struct pkt *pkt;
|
||||||
u64 first_addr;
|
u64 first_addr = 0;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
fds.fd = xsk_socket__fd(xsk->xsk);
|
fds.fd = xsk_socket__fd(xsk->xsk);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user