]> git.baikalelectronics.ru Git - kernel.git/commit
libbpf: Make destructors more robust by handling ERR_PTR(err) cases
authorAndrii Nakryiko <andriin@fb.com>
Wed, 29 Jul 2020 23:21:48 +0000 (16:21 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 30 Jul 2020 22:53:07 +0000 (00:53 +0200)
commita8e73e99ffdde1a5643dc8b40ec82350964d394c
tree081623f21697f9919d3120b820ddea93f776ceab
parent6a591f38170791bd6e72e99184969dd7174bbdfe
libbpf: Make destructors more robust by handling ERR_PTR(err) cases

Most of libbpf "constructors" on failure return ERR_PTR(err) result encoded as
a pointer. It's a common mistake to eventually pass such malformed pointers
into xxx__destroy()/xxx__free() "destructors". So instead of fixing up
clean up code in selftests and user programs, handle such error pointers in
destructors themselves. This works beautifully for NULL pointers passed to
destructors, so might as well just work for error pointers.

Suggested-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Song Liu <songliubraving@fb.com>
Link: https://lore.kernel.org/bpf/20200729232148.896125-1-andriin@fb.com
tools/lib/bpf/btf.c
tools/lib/bpf/btf_dump.c
tools/lib/bpf/libbpf.c