lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPhsuW7fCsWy+T74reSbcJq0fC8WQy2SS+4xp_v3jOjvgRthPQ@mail.gmail.com>
Date:   Wed, 28 Nov 2018 15:35:06 -0800
From:   Song Liu <liu.song.a23@...il.com>
To:     "David S . Miller" <davem@...emloft.net>
Cc:     Daniel Borkmann <daniel@...earbox.net>,
        Alexei Starovoitov <ast@...nel.org>,
        Networking <netdev@...r.kernel.org>
Subject: Re: [PATCH] bpf: Fix various lib and testsuite build failures on 32-bit.

On Wed, Nov 28, 2018 at 12:59 PM David Miller <davem@...emloft.net> wrote:
>
>
> Cannot cast a u64 to a pointer on 32-bit without an intervening (long)
> cast otherwise GCC warns.
>
> Signed-off-by: David S. Miller <davem@...emloft.net>

Acked-by: Song Liu <songliubraving@...com>


> --
>
> diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
> index eadcf8d..c2d641f 100644
> --- a/tools/lib/bpf/btf.c
> +++ b/tools/lib/bpf/btf.c
> @@ -466,7 +466,7 @@ int btf__get_from_id(__u32 id, struct btf **btf)
>                 goto exit_free;
>         }
>
> -       *btf = btf__new((__u8 *)btf_info.btf, btf_info.btf_size, NULL);
> +       *btf = btf__new((__u8 *)(long)btf_info.btf, btf_info.btf_size, NULL);
>         if (IS_ERR(*btf)) {
>                 err = PTR_ERR(*btf);
>                 *btf = NULL;
> diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c
> index c1e688f6..1c57abb 100644
> --- a/tools/testing/selftests/bpf/test_progs.c
> +++ b/tools/testing/selftests/bpf/test_progs.c
> @@ -524,7 +524,7 @@ static void test_bpf_obj_id(void)
>                           load_time < now - 60 || load_time > now + 60 ||
>                           prog_infos[i].created_by_uid != my_uid ||
>                           prog_infos[i].nr_map_ids != 1 ||
> -                         *(int *)prog_infos[i].map_ids != map_infos[i].id ||
> +                         *(int *)(long)prog_infos[i].map_ids != map_infos[i].id ||
>                           strcmp((char *)prog_infos[i].name, expected_prog_name),
>                           "get-prog-info(fd)",
>                           "err %d errno %d i %d type %d(%d) info_len %u(%Zu) jit_enabled %d jited_prog_len %u xlated_prog_len %u jited_prog %d xlated_prog %d load_time %lu(%lu) uid %u(%u) nr_map_ids %u(%u) map_id %u(%u) name %s(%s)\n",
> @@ -539,7 +539,7 @@ static void test_bpf_obj_id(void)
>                           load_time, now,
>                           prog_infos[i].created_by_uid, my_uid,
>                           prog_infos[i].nr_map_ids, 1,
> -                         *(int *)prog_infos[i].map_ids, map_infos[i].id,
> +                         *(int *)(long)prog_infos[i].map_ids, map_infos[i].id,
>                           prog_infos[i].name, expected_prog_name))
>                         goto done;
>         }
> @@ -585,7 +585,7 @@ static void test_bpf_obj_id(void)
>                 bzero(&prog_info, sizeof(prog_info));
>                 info_len = sizeof(prog_info);
>
> -               saved_map_id = *(int *)(prog_infos[i].map_ids);
> +               saved_map_id = *(int *)((long)prog_infos[i].map_ids);
>                 prog_info.map_ids = prog_infos[i].map_ids;
>                 prog_info.nr_map_ids = 2;
>                 err = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &info_len);
> @@ -593,12 +593,12 @@ static void test_bpf_obj_id(void)
>                 prog_infos[i].xlated_prog_insns = 0;
>                 CHECK(err || info_len != sizeof(struct bpf_prog_info) ||
>                       memcmp(&prog_info, &prog_infos[i], info_len) ||
> -                     *(int *)prog_info.map_ids != saved_map_id,
> +                     *(int *)(long)prog_info.map_ids != saved_map_id,
>                       "get-prog-info(next_id->fd)",
>                       "err %d errno %d info_len %u(%Zu) memcmp %d map_id %u(%u)\n",
>                       err, errno, info_len, sizeof(struct bpf_prog_info),
>                       memcmp(&prog_info, &prog_infos[i], info_len),
> -                     *(int *)prog_info.map_ids, saved_map_id);
> +                     *(int *)(long)prog_info.map_ids, saved_map_id);
>                 close(prog_fd);
>         }
>         CHECK(nr_id_found != nr_iters,

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ