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]
Date:   Fri, 6 Sep 2019 09:09:17 +0000
From:   Andrii Nakryiko <andriin@...com>
To:     Jiri Olsa <jolsa@...nel.org>, Alexei Starovoitov <ast@...nel.org>,
        "Daniel Borkmann" <daniel@...earbox.net>
CC:     "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
        "bpf@...r.kernel.org" <bpf@...r.kernel.org>,
        Yonghong Song <yhs@...com>, Martin Lau <kafai@...com>
Subject: Re: [PATCH 0/7] libbpf: Fix cast away const qualifiers in btf.h

On 9/6/19 8:31 AM, Jiri Olsa wrote:
> hi,
> when including btf.h in bpftrace, I'm getting -Wcast-qual warnings like:
> 
>    bpf/btf.h: In function ‘btf_var_secinfo* btf_var_secinfos(const btf_type*)’:
>    bpf/btf.h:302:41: warning: cast from type ‘const btf_type*’ to type
>    ‘btf_var_secinfo*’ casts away qualifiers [-Wcast-qual]
>      302 |  return (struct btf_var_secinfo *)(t + 1);
>          |                                         ^
> 
> I changed the btf.h header to comply with -Wcast-qual checks
> and used const cast away casting in libbpf objects, where it's

Hey Jiri,

We made all those helper funcs return non-const structs intentionally to 
improve their usability and avoid all those casts that you added back.

Also, those helpers are now part of public API, so we can't just change 
them to const, as it can break existing users easily.

If there is a need to run with -Wcast-qual, we should probably disable 
those checks where appropriate in libbpf code.

So this will be a NACK from me, sorry.

> all related to deduplication code, so I believe loosing const
> is fine there.
> 
> thanks,
> jirka
> 
> 
> ---
> Jiri Olsa (7):
>        libbpf: Use const cast for btf_int_* functions
>        libbpf: Return const btf_array from btf_array inline function
>        libbpf: Return const btf_enum from btf_enum inline function
>        libbpf: Return const btf_member from btf_members inline function
>        libbpf: Return const btf_param from btf_params inline function
>        libbpf: Return const btf_var from btf_var inline function
>        libbpf: Return const struct btf_var_secinfo from btf_var_secinfos inline function
> 
>   tools/lib/bpf/btf.c    | 21 +++++++++++----------
>   tools/lib/bpf/btf.h    | 30 +++++++++++++++---------------
>   tools/lib/bpf/libbpf.c |  2 +-
>   3 files changed, 27 insertions(+), 26 deletions(-)
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ