--- /dev/null
+libbpf (0.3-2+deb11u1) bullseye-security; urgency=medium
+
+ * Non-maintainer upload by the LTS Team.
+ * CVE-2022-3534: use-after-free in btf_dump_name_dups()
+ * CVE-2022-3606: null-pointer dereference in find_prog_by_sec_insn()
+
+ -- Adrian Bunk <bunk@debian.org> Thu, 24 Apr 2025 15:56:45 +0300
+
+libbpf (0.3-2) unstable; urgency=medium
+
+ [ Luca Boccassi ]
+ * Add build-dependency on zlib1g-dev
+ * Use pkg-config to get build flags
+ * Enable verbose builds unless 'terse' DEB_BUILD_OPTIONS is set
+ * Have libbpf-dev depend on libelf-dev and zlib1g-dev
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Sun, 10 Jan 2021 17:43:30 +0000
+
+libbpf (0.3-1) unstable; urgency=medium
+
+ * New upstream version 0.3 (Closes: #979166)
+ - Update symbols file.
+ * Update Standards-Version to 4.5.1
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Sun, 03 Jan 2021 23:27:11 +0000
+
+libbpf (0.2-1) unstable; urgency=medium
+
+ * New upstream version 0.2
+ - Update symbols file.
+ - Update copyright for removed file.
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Thu, 29 Oct 2020 23:07:35 +0000
+
+libbpf (0.1.1-1) unstable; urgency=medium
+
+ * Update from upstream v0.1.1
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Sat, 26 Sep 2020 23:17:58 +0100
+
+libbpf (0.1.0-1) unstable; urgency=medium
+
+ * Update from upstream v0.1.0
+ - Update symbols file.
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Wed, 26 Aug 2020 22:40:21 +0100
+
+libbpf (0.0.9-1) unstable; urgency=medium
+
+ [ Debian Janitor ]
+ * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository,
+ Repository-Browse.
+
+ [ Sudip Mukherjee ]
+ * Update from upstream v0.0.9
+ - Update symbols file.
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Thu, 23 Jul 2020 18:35:16 +0100
+
+libbpf (0.0.8-1) unstable; urgency=medium
+
+ * Update from upstream v0.0.8
+ * Update symbols file.
+ * Update compat level to 13.
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Fri, 01 May 2020 09:44:49 +0100
+
+libbpf (0.0.6-1) unstable; urgency=medium
+
+ * Package from github. (Closes: #948041)
+
+ -- Sudip Mukherjee <sudipm.mukherjee@gmail.com> Sat, 11 Apr 2020 16:12:37 +0100
--- /dev/null
+Source: libbpf
+Priority: optional
+Maintainer: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Build-Depends: debhelper-compat (= 13), libelf-dev, zlib1g-dev, pkg-config
+Standards-Version: 4.5.1
+Section: libs
+Vcs-Browser: https://github.com/sudipm-mukherjee/libbpf
+Vcs-Git: https://github.com/sudipm-mukherjee/libbpf.git
+
+Package: libbpf-dev
+Section: libdevel
+Architecture: linux-any
+Multi-Arch: same
+Depends: ${misc:Depends}, libbpf0 (= ${binary:Version}), libelf-dev, zlib1g-dev
+Description: eBPF helper library (development files)
+ libbpf is a library for loading eBPF programs and reading and
+ manipulating eBPF objects from user-space.
+ .
+ This package is needed to compile programs against libbpf.
+
+Package: libbpf0
+Architecture: linux-any
+Multi-Arch: same
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: eBPF helper library (shared library)
+ libbpf is a library for loading eBPF programs and reading and
+ manipulating eBPF objects from user-space.
+ .
+ This package contains the shared library.
--- /dev/null
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: libbpf
+Source: https://github.com/libbpf/libbpf
+
+Files: *
+Copyright: 2013-2015 Alexei Starovoitov <ast@kernel.org>
+ 2015 Wang Nan <wangnan0@huawei.com>
+ 2015 Huawei Inc.
+ 2018, 2019 Facebook
+ 2017 Nicira, Inc.
+ 2019 Isovalent, Inc.
+ 2019 Netronome Systems, Inc.
+ 2003-2013 Thomas Graf <tgraf@suug.ch>
+ 2018-2019 Intel Corporation.
+License: LGPL-2.1 or BSD-2-Clause
+
+Files: include/uapi/linux/bpf.h
+ include/uapi/linux/bpf_common.h
+ include/uapi/linux/btf.h
+ include/uapi/linux/if_link.h
+ include/uapi/linux/if_xdp.h
+ include/uapi/linux/netlink.h
+Copyright: 2011-2014 PLUMgrid, http://plumgrid.com
+ 2018 Facebook
+ 2018 Intel Corporation.
+License: GPL-2 with Linux-syscall-note exception
+
+Files: debian/*
+Copyright: 2018 Ben Hutchings <ben@decadent.org.uk>
+ 2018 Hilko Bengen <bengen@debian.org>
+ 2018 Luca Boccassi <bluca@debian.org>
+ 2020 Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
+
+License: LGPL-2.1
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation;
+ version 2.1 of the License (not later!)
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+ .
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, see <http://www.gnu.org/licenses>
+ .
+ On Debian systems, the complete text of the GNU Lesser General Public License
+ Version 2.1 can be found in `/usr/share/common-licenses/LGPL-2.1'.
+
+License: BSD-2-Clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGE.
+
+License: GPL-2 with Linux-syscall-note exception
+ NOTE! This copyright does *not* cover user programs that use kernel services
+ by normal system calls - this is merely considered normal use of the kernel,
+ and does *not* fall under the heading of "derived work". Also note that the
+ GPL below is copyrighted by the Free Software Foundation, but the instance of
+ code that it refers to (the Linux kernel) is copyrighted by me and others who
+ actually wrote it.
+ .
+ Also note that the only valid version of the GPL as far as the kernel is
+ concerned is _this_ particular version of the license (ie v2, not v2.2 or v3.x
+ or whatever), unless explicitly otherwise stated.
+ .
+ Linus Torvalds
+ .
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ .
+ On Debian and systems the full text of the GNU General Public
+ License version 2 can be found in the file
+ "/usr/share/common-licenses/GPL-2".
--- /dev/null
+usr/include/*
+usr/lib/*/lib*.a
+usr/lib/*/lib*.so
+usr/lib/*/pkgconfig/*
--- /dev/null
+usr/lib/*/lib*.so.*
--- /dev/null
+libbpf.so.0 libbpf0 #MINVER#
+ LIBBPF_0.0.1@LIBBPF_0.0.1 5.2.6
+ LIBBPF_0.0.2@LIBBPF_0.0.2 5.2.6
+ LIBBPF_0.0.3@LIBBPF_0.0.3 5.2.6
+ LIBBPF_0.0.4@LIBBPF_0.0.4 5.3
+ LIBBPF_0.0.5@LIBBPF_0.0.5 5.4
+ LIBBPF_0.0.6@LIBBPF_0.0.6 5.5
+ LIBBPF_0.0.7@LIBBPF_0.0.7 1:0.0.8
+ LIBBPF_0.0.8@LIBBPF_0.0.8 1:0.0.8
+ LIBBPF_0.0.9@LIBBPF_0.0.9 1:0.0.9
+ LIBBPF_0.1.0@LIBBPF_0.1.0 1:0.1.0
+ LIBBPF_0.2.0@LIBBPF_0.2.0 1:0.2
+ LIBBPF_0.3.0@LIBBPF_0.3.0 1:0.3
+ bpf_btf_get_fd_by_id@LIBBPF_0.0.1 5.2.6
+ bpf_btf_get_next_id@LIBBPF_0.0.5 5.4
+ bpf_create_map@LIBBPF_0.0.1 5.2.6
+ bpf_create_map_in_map@LIBBPF_0.0.1 5.2.6
+ bpf_create_map_in_map_node@LIBBPF_0.0.1 5.2.6
+ bpf_create_map_name@LIBBPF_0.0.1 5.2.6
+ bpf_create_map_node@LIBBPF_0.0.1 5.2.6
+ bpf_create_map_xattr@LIBBPF_0.0.1 5.2.6
+ bpf_enable_stats@LIBBPF_0.0.9 1:0.0.9
+ bpf_get_link_xdp_id@LIBBPF_0.0.2 5.2.6
+ bpf_get_link_xdp_info@LIBBPF_0.0.6 5.5
+ bpf_iter_create@LIBBPF_0.0.9 1:0.0.9
+ bpf_link__destroy@LIBBPF_0.0.4 5.3
+ bpf_link__detach@LIBBPF_0.1.0 1:0.1.0
+ bpf_link__disconnect@LIBBPF_0.0.7 1:0.0.8
+ bpf_link__fd@LIBBPF_0.0.8 1:0.0.8
+ bpf_link__open@LIBBPF_0.0.8 1:0.0.8
+ bpf_link__pin@LIBBPF_0.0.8 1:0.0.8
+ bpf_link__pin_path@LIBBPF_0.0.8 1:0.0.8
+ bpf_link__unpin@LIBBPF_0.0.8 1:0.0.8
+ bpf_link__update_program@LIBBPF_0.0.8 1:0.0.8
+ bpf_link_create@LIBBPF_0.0.8 1:0.0.8
+ bpf_link_detach@LIBBPF_0.1.0 1:0.1.0
+ bpf_link_get_fd_by_id@LIBBPF_0.0.9 1:0.0.9
+ bpf_link_get_next_id@LIBBPF_0.0.9 1:0.0.9
+ bpf_link_update@LIBBPF_0.0.8 1:0.0.8
+ bpf_load_btf@LIBBPF_0.0.1 5.2.6
+ bpf_load_program@LIBBPF_0.0.1 5.2.6
+ bpf_load_program_xattr@LIBBPF_0.0.1 5.2.6
+ bpf_map__attach_struct_ops@LIBBPF_0.0.7 1:0.0.8
+ bpf_map__btf_key_type_id@LIBBPF_0.0.1 5.2.6
+ bpf_map__btf_value_type_id@LIBBPF_0.0.1 5.2.6
+ bpf_map__def@LIBBPF_0.0.1 5.2.6
+ bpf_map__fd@LIBBPF_0.0.1 5.2.6
+ bpf_map__get_pin_path@LIBBPF_0.0.6 5.5
+ bpf_map__ifindex@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__is_internal@LIBBPF_0.0.3 5.2.6
+ bpf_map__is_offload_neutral@LIBBPF_0.0.1 5.2.6
+ bpf_map__is_pinned@LIBBPF_0.0.6 5.5
+ bpf_map__key_size@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__map_flags@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__max_entries@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__name@LIBBPF_0.0.1 5.2.6
+ bpf_map__next@LIBBPF_0.0.1 5.2.6
+ bpf_map__numa_node@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__pin@LIBBPF_0.0.1 5.2.6
+ bpf_map__prev@LIBBPF_0.0.1 5.2.6
+ bpf_map__priv@LIBBPF_0.0.1 5.2.6
+ bpf_map__resize@LIBBPF_0.0.2 5.2.6
+ bpf_map__reuse_fd@LIBBPF_0.0.1 5.2.6
+ bpf_map__set_ifindex@LIBBPF_0.0.1 5.2.6
+ bpf_map__set_initial_value@LIBBPF_0.0.8 1:0.0.8
+ bpf_map__set_inner_map_fd@LIBBPF_0.0.1 5.2.6
+ bpf_map__set_key_size@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__set_map_flags@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__set_max_entries@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__set_numa_node@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__set_pin_path@LIBBPF_0.0.6 5.5
+ bpf_map__set_priv@LIBBPF_0.0.1 5.2.6
+ bpf_map__set_type@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__set_value_size@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__type@LIBBPF_0.1.0 1:0.1.0
+ bpf_map__unpin@LIBBPF_0.0.1 5.2.6
+ bpf_map__value_size@LIBBPF_0.1.0 1:0.1.0
+ bpf_map_delete_batch@LIBBPF_0.0.7 1:0.0.8
+ bpf_map_delete_elem@LIBBPF_0.0.1 5.2.6
+ bpf_map_freeze@LIBBPF_0.0.3 5.2.6
+ bpf_map_get_fd_by_id@LIBBPF_0.0.1 5.2.6
+ bpf_map_get_next_id@LIBBPF_0.0.1 5.2.6
+ bpf_map_get_next_key@LIBBPF_0.0.1 5.2.6
+ bpf_map_lookup_and_delete_batch@LIBBPF_0.0.7 1:0.0.8
+ bpf_map_lookup_and_delete_elem@LIBBPF_0.0.1 5.2.6
+ bpf_map_lookup_batch@LIBBPF_0.0.7 1:0.0.8
+ bpf_map_lookup_elem@LIBBPF_0.0.1 5.2.6
+ bpf_map_lookup_elem_flags@LIBBPF_0.0.2 5.2.6
+ bpf_map_update_batch@LIBBPF_0.0.7 1:0.0.8
+ bpf_map_update_elem@LIBBPF_0.0.1 5.2.6
+ bpf_obj_get@LIBBPF_0.0.1 5.2.6
+ bpf_obj_get_info_by_fd@LIBBPF_0.0.1 5.2.6
+ bpf_obj_pin@LIBBPF_0.0.1 5.2.6
+ bpf_object__attach_skeleton@LIBBPF_0.0.7 1:0.0.8
+ bpf_object__btf@LIBBPF_0.0.2 5.2.6
+ bpf_object__btf_fd@LIBBPF_0.0.1 5.2.6
+ bpf_object__close@LIBBPF_0.0.1 5.2.6
+ bpf_object__destroy_skeleton@LIBBPF_0.0.7 1:0.0.8
+ bpf_object__detach_skeleton@LIBBPF_0.0.7 1:0.0.8
+ bpf_object__find_map_by_name@LIBBPF_0.0.1 5.2.6
+ bpf_object__find_map_by_offset@LIBBPF_0.0.1 5.2.6
+ bpf_object__find_map_fd_by_name@LIBBPF_0.0.2 5.2.6
+ bpf_object__find_program_by_name@LIBBPF_0.0.7 1:0.0.8
+ bpf_object__find_program_by_title@LIBBPF_0.0.1 5.2.6
+ bpf_object__kversion@LIBBPF_0.0.1 5.2.6
+ bpf_object__load@LIBBPF_0.0.1 5.2.6
+ bpf_object__load_skeleton@LIBBPF_0.0.7 1:0.0.8
+ bpf_object__load_xattr@LIBBPF_0.0.4 5.3
+ bpf_object__name@LIBBPF_0.0.1 5.2.6
+ bpf_object__next@LIBBPF_0.0.1 5.2.6
+ bpf_object__open@LIBBPF_0.0.1 5.2.6
+ bpf_object__open_buffer@LIBBPF_0.0.1 5.2.6
+ bpf_object__open_file@LIBBPF_0.0.6 5.5
+ bpf_object__open_mem@LIBBPF_0.0.6 5.5
+ bpf_object__open_skeleton@LIBBPF_0.0.7 1:0.0.8
+ bpf_object__open_xattr@LIBBPF_0.0.1 5.2.6
+ bpf_object__pin@LIBBPF_0.0.1 5.2.6
+ bpf_object__pin_maps@LIBBPF_0.0.1 5.2.6
+ bpf_object__pin_programs@LIBBPF_0.0.1 5.2.6
+ bpf_object__priv@LIBBPF_0.0.1 5.2.6
+ bpf_object__set_priv@LIBBPF_0.0.1 5.2.6
+ bpf_object__unload@LIBBPF_0.0.1 5.2.6
+ bpf_object__unpin_maps@LIBBPF_0.0.1 5.2.6
+ bpf_object__unpin_programs@LIBBPF_0.0.1 5.2.6
+ bpf_perf_event_read_simple@LIBBPF_0.0.1 5.2.6
+ bpf_probe_helper@LIBBPF_0.0.2 5.2.6
+ bpf_probe_large_insn_limit@LIBBPF_0.0.7 1:0.0.8
+ bpf_probe_map_type@LIBBPF_0.0.2 5.2.6
+ bpf_probe_prog_type@LIBBPF_0.0.2 5.2.6
+ bpf_prog_attach@LIBBPF_0.0.1 5.2.6
+ bpf_prog_attach_xattr@LIBBPF_0.0.7 1:0.0.8
+ bpf_prog_bind_map@LIBBPF_0.2.0 1:0.2
+ bpf_prog_detach2@LIBBPF_0.0.1 5.2.6
+ bpf_prog_detach@LIBBPF_0.0.1 5.2.6
+ bpf_prog_get_fd_by_id@LIBBPF_0.0.1 5.2.6
+ bpf_prog_get_next_id@LIBBPF_0.0.1 5.2.6
+ bpf_prog_linfo__free@LIBBPF_0.0.1 5.2.6
+ bpf_prog_linfo__lfind@LIBBPF_0.0.1 5.2.6
+ bpf_prog_linfo__lfind_addr_func@LIBBPF_0.0.1 5.2.6
+ bpf_prog_linfo__new@LIBBPF_0.0.1 5.2.6
+ bpf_prog_load@LIBBPF_0.0.1 5.2.6
+ bpf_prog_load_xattr@LIBBPF_0.0.1 5.2.6
+ bpf_prog_query@LIBBPF_0.0.1 5.2.6
+ bpf_prog_test_run@LIBBPF_0.0.1 5.2.6
+ bpf_prog_test_run_opts@LIBBPF_0.2.0 1:0.2
+ bpf_prog_test_run_xattr@LIBBPF_0.0.1 5.2.6
+ bpf_program__attach@LIBBPF_0.0.7 1:0.0.8
+ bpf_program__attach_cgroup@LIBBPF_0.0.8 1:0.0.8
+ bpf_program__attach_freplace@LIBBPF_0.2.0 1:0.2
+ bpf_program__attach_iter@LIBBPF_0.0.9 1:0.0.9
+ bpf_program__attach_kprobe@LIBBPF_0.0.4 5.3
+ bpf_program__attach_lsm@LIBBPF_0.0.8 1:0.0.8
+ bpf_program__attach_netns@LIBBPF_0.0.9 1:0.0.9
+ bpf_program__attach_perf_event@LIBBPF_0.0.4 5.3
+ bpf_program__attach_raw_tracepoint@LIBBPF_0.0.4 5.3
+ bpf_program__attach_trace@LIBBPF_0.0.6 5.5
+ bpf_program__attach_tracepoint@LIBBPF_0.0.4 5.3
+ bpf_program__attach_uprobe@LIBBPF_0.0.4 5.3
+ bpf_program__attach_xdp@LIBBPF_0.1.0 1:0.1.0
+ bpf_program__autoload@LIBBPF_0.1.0 1:0.1.0
+ bpf_program__bpil_addr_to_offs@LIBBPF_0.0.2 5.2.6
+ bpf_program__bpil_offs_to_addr@LIBBPF_0.0.2 5.2.6
+ bpf_program__fd@LIBBPF_0.0.1 5.2.6
+ bpf_program__get_expected_attach_type@LIBBPF_0.0.6 5.5
+ bpf_program__get_prog_info_linear@LIBBPF_0.0.2 5.2.6
+ bpf_program__get_type@LIBBPF_0.0.6 5.5
+ bpf_program__is_extension@LIBBPF_0.0.7 1:0.0.8
+ bpf_program__is_kprobe@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_lsm@LIBBPF_0.0.8 1:0.0.8
+ bpf_program__is_perf_event@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_raw_tracepoint@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_sched_act@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_sched_cls@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_sk_lookup@LIBBPF_0.1.0 1:0.1.0
+ bpf_program__is_socket_filter@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_struct_ops@LIBBPF_0.0.7 1:0.0.8
+ bpf_program__is_tracepoint@LIBBPF_0.0.1 5.2.6
+ bpf_program__is_tracing@LIBBPF_0.0.6 5.5
+ bpf_program__is_xdp@LIBBPF_0.0.1 5.2.6
+ bpf_program__load@LIBBPF_0.0.1 5.2.6
+ bpf_program__name@LIBBPF_0.0.7 1:0.0.8
+ bpf_program__next@LIBBPF_0.0.1 5.2.6
+ bpf_program__nth_fd@LIBBPF_0.0.1 5.2.6
+ bpf_program__pin@LIBBPF_0.0.1 5.2.6
+ bpf_program__pin_instance@LIBBPF_0.0.1 5.2.6
+ bpf_program__prev@LIBBPF_0.0.1 5.2.6
+ bpf_program__priv@LIBBPF_0.0.1 5.2.6
+ bpf_program__section_name@LIBBPF_0.2.0 1:0.2
+ bpf_program__set_attach_target@LIBBPF_0.0.8 1:0.0.8
+ bpf_program__set_autoload@LIBBPF_0.1.0 1:0.1.0
+ bpf_program__set_expected_attach_type@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_extension@LIBBPF_0.0.7 1:0.0.8
+ bpf_program__set_ifindex@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_kprobe@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_lsm@LIBBPF_0.0.8 1:0.0.8
+ bpf_program__set_perf_event@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_prep@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_priv@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_raw_tracepoint@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_sched_act@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_sched_cls@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_sk_lookup@LIBBPF_0.1.0 1:0.1.0
+ bpf_program__set_socket_filter@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_struct_ops@LIBBPF_0.0.7 1:0.0.8
+ bpf_program__set_tracepoint@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_tracing@LIBBPF_0.0.6 5.5
+ bpf_program__set_type@LIBBPF_0.0.1 5.2.6
+ bpf_program__set_xdp@LIBBPF_0.0.1 5.2.6
+ bpf_program__size@LIBBPF_0.0.6 5.5
+ bpf_program__title@LIBBPF_0.0.1 5.2.6
+ bpf_program__unload@LIBBPF_0.0.1 5.2.6
+ bpf_program__unpin@LIBBPF_0.0.1 5.2.6
+ bpf_program__unpin_instance@LIBBPF_0.0.1 5.2.6
+ bpf_raw_tracepoint_open@LIBBPF_0.0.1 5.2.6
+ bpf_set_link_xdp_fd@LIBBPF_0.0.1 5.2.6
+ bpf_set_link_xdp_fd_opts@LIBBPF_0.0.8 1:0.0.8
+ bpf_task_fd_query@LIBBPF_0.0.1 5.2.6
+ bpf_verify_program@LIBBPF_0.0.1 5.2.6
+ btf__add_array@LIBBPF_0.2.0 1:0.2
+ btf__add_const@LIBBPF_0.2.0 1:0.2
+ btf__add_datasec@LIBBPF_0.2.0 1:0.2
+ btf__add_datasec_var_info@LIBBPF_0.2.0 1:0.2
+ btf__add_enum@LIBBPF_0.2.0 1:0.2
+ btf__add_enum_value@LIBBPF_0.2.0 1:0.2
+ btf__add_field@LIBBPF_0.2.0 1:0.2
+ btf__add_func@LIBBPF_0.2.0 1:0.2
+ btf__add_func_param@LIBBPF_0.2.0 1:0.2
+ btf__add_func_proto@LIBBPF_0.2.0 1:0.2
+ btf__add_fwd@LIBBPF_0.2.0 1:0.2
+ btf__add_int@LIBBPF_0.2.0 1:0.2
+ btf__add_ptr@LIBBPF_0.2.0 1:0.2
+ btf__add_restrict@LIBBPF_0.2.0 1:0.2
+ btf__add_str@LIBBPF_0.2.0 1:0.2
+ btf__add_struct@LIBBPF_0.2.0 1:0.2
+ btf__add_typedef@LIBBPF_0.2.0 1:0.2
+ btf__add_union@LIBBPF_0.2.0 1:0.2
+ btf__add_var@LIBBPF_0.2.0 1:0.2
+ btf__add_volatile@LIBBPF_0.2.0 1:0.2
+ btf__align_of@LIBBPF_0.0.7 1:0.0.8
+ btf__base_btf@LIBBPF_0.3.0 1:0.3
+ btf__dedup@LIBBPF_0.0.2 5.2.6
+ btf__endianness@LIBBPF_0.2.0 1:0.2
+ btf__fd@LIBBPF_0.0.1 5.2.6
+ btf__finalize_data@LIBBPF_0.0.3 5.2.6
+ btf__find_by_name@LIBBPF_0.0.1 5.2.6
+ btf__find_by_name_kind@LIBBPF_0.0.6 5.5
+ btf__find_str@LIBBPF_0.2.0 1:0.2
+ btf__free@LIBBPF_0.0.1 5.2.6
+ btf__get_from_id@LIBBPF_0.0.1 5.2.6
+ btf__get_map_kv_tids@LIBBPF_0.0.2 5.2.6
+ btf__get_nr_types@LIBBPF_0.0.2 5.2.6
+ btf__get_raw_data@LIBBPF_0.0.2 5.2.6
+ btf__load@LIBBPF_0.0.2 5.2.6
+ btf__name_by_offset@LIBBPF_0.0.1 5.2.6
+ btf__new@LIBBPF_0.0.1 5.2.6
+ btf__new_empty@LIBBPF_0.2.0 1:0.2
+ btf__new_empty_split@LIBBPF_0.3.0 1:0.3
+ btf__parse@LIBBPF_0.1.0 1:0.1.0
+ btf__parse_elf@LIBBPF_0.0.4 5.3
+ btf__parse_elf_split@LIBBPF_0.3.0 1:0.3
+ btf__parse_raw@LIBBPF_0.1.0 1:0.1.0
+ btf__parse_raw_split@LIBBPF_0.3.0 1:0.3
+ btf__parse_split@LIBBPF_0.3.0 1:0.3
+ btf__pointer_size@LIBBPF_0.1.0 1:0.1.0
+ btf__resolve_size@LIBBPF_0.0.1 5.2.6
+ btf__resolve_type@LIBBPF_0.0.1 5.2.6
+ btf__set_endianness@LIBBPF_0.2.0 1:0.2
+ btf__set_fd@LIBBPF_0.1.0 1:0.1.0
+ btf__set_pointer_size@LIBBPF_0.1.0 1:0.1.0
+ btf__str_by_offset@LIBBPF_0.2.0 1:0.2
+ btf__type_by_id@LIBBPF_0.0.1 5.2.6
+ btf_dump__dump_type@LIBBPF_0.0.4 5.3
+ btf_dump__emit_type_decl@LIBBPF_0.0.7 1:0.0.8
+ btf_dump__free@LIBBPF_0.0.4 5.3
+ btf_dump__new@LIBBPF_0.0.4 5.3
+ btf_ext__free@LIBBPF_0.0.2 5.2.6
+ btf_ext__func_info_rec_size@LIBBPF_0.0.2 5.2.6
+ btf_ext__get_raw_data@LIBBPF_0.0.2 5.2.6
+ btf_ext__line_info_rec_size@LIBBPF_0.0.2 5.2.6
+ btf_ext__new@LIBBPF_0.0.2 5.2.6
+ btf_ext__reloc_func_info@LIBBPF_0.0.2 5.2.6
+ btf_ext__reloc_line_info@LIBBPF_0.0.2 5.2.6
+ libbpf_attach_type_by_name@LIBBPF_0.0.1 5.2.6
+ libbpf_find_kernel_btf@LIBBPF_0.0.7 1:0.0.8
+ libbpf_find_vmlinux_btf_id@LIBBPF_0.0.6 5.5
+ libbpf_get_error@LIBBPF_0.0.1 5.2.6
+ libbpf_num_possible_cpus@LIBBPF_0.0.4 5.3
+ libbpf_prog_type_by_name@LIBBPF_0.0.1 5.2.6
+ libbpf_set_print@LIBBPF_0.0.1 5.2.6
+ libbpf_strerror@LIBBPF_0.0.1 5.2.6
+ perf_buffer__buffer_cnt@LIBBPF_0.2.0 1:0.2
+ perf_buffer__buffer_fd@LIBBPF_0.2.0 1:0.2
+ perf_buffer__consume@LIBBPF_0.0.9 1:0.0.9
+ perf_buffer__consume_buffer@LIBBPF_0.2.0 1:0.2
+ perf_buffer__epoll_fd@LIBBPF_0.2.0 1:0.2
+ perf_buffer__free@LIBBPF_0.0.4 5.3
+ perf_buffer__new@LIBBPF_0.0.4 5.3
+ perf_buffer__new_raw@LIBBPF_0.0.4 5.3
+ perf_buffer__poll@LIBBPF_0.0.4 5.3
+ ring_buffer__add@LIBBPF_0.0.9 1:0.0.9
+ ring_buffer__consume@LIBBPF_0.0.9 1:0.0.9
+ ring_buffer__epoll_fd@LIBBPF_0.3.0 1:0.3
+ ring_buffer__free@LIBBPF_0.0.9 1:0.0.9
+ ring_buffer__new@LIBBPF_0.0.9 1:0.0.9
+ ring_buffer__poll@LIBBPF_0.0.9 1:0.0.9
+ xsk_setup_xdp_prog@LIBBPF_0.3.0 1:0.3
+ xsk_socket__create@LIBBPF_0.0.2 5.2.6
+ xsk_socket__create_shared@LIBBPF_0.2.0 1:0.2
+ xsk_socket__delete@LIBBPF_0.0.2 5.2.6
+ xsk_socket__fd@LIBBPF_0.0.2 5.2.6
+ xsk_socket__update_xskmap@LIBBPF_0.3.0 1:0.3
+ xsk_umem__create@LIBBPF_0.0.2 5.2.6
+ xsk_umem__create@LIBBPF_0.0.4 5.4
+ xsk_umem__delete@LIBBPF_0.0.2 5.2.6
+ xsk_umem__fd@LIBBPF_0.0.2 5.2.6
--- /dev/null
+From dec9340cf9b6e6a5c2c411989de3a5581bf8e5a3 Mon Sep 17 00:00:00 2001
+From: Xu Kuohai <xukuohai@huawei.com>
+Date: Tue, 11 Oct 2022 08:01:03 -0400
+Subject: libbpf: Fix use-after-free in btf_dump_name_dups
+
+ASAN reports an use-after-free in btf_dump_name_dups:
+
+ERROR: AddressSanitizer: heap-use-after-free on address 0xffff927006db at pc 0xaaaab5dfb618 bp 0xffffdd89b890 sp 0xffffdd89b928
+READ of size 2 at 0xffff927006db thread T0
+ #0 0xaaaab5dfb614 in __interceptor_strcmp.part.0 (test_progs+0x21b614)
+ #1 0xaaaab635f144 in str_equal_fn tools/lib/bpf/btf_dump.c:127
+ #2 0xaaaab635e3e0 in hashmap_find_entry tools/lib/bpf/hashmap.c:143
+ #3 0xaaaab635e72c in hashmap__find tools/lib/bpf/hashmap.c:212
+ #4 0xaaaab6362258 in btf_dump_name_dups tools/lib/bpf/btf_dump.c:1525
+ #5 0xaaaab636240c in btf_dump_resolve_name tools/lib/bpf/btf_dump.c:1552
+ #6 0xaaaab6362598 in btf_dump_type_name tools/lib/bpf/btf_dump.c:1567
+ #7 0xaaaab6360b48 in btf_dump_emit_struct_def tools/lib/bpf/btf_dump.c:912
+ #8 0xaaaab6360630 in btf_dump_emit_type tools/lib/bpf/btf_dump.c:798
+ #9 0xaaaab635f720 in btf_dump__dump_type tools/lib/bpf/btf_dump.c:282
+ #10 0xaaaab608523c in test_btf_dump_incremental tools/testing/selftests/bpf/prog_tests/btf_dump.c:236
+ #11 0xaaaab6097530 in test_btf_dump tools/testing/selftests/bpf/prog_tests/btf_dump.c:875
+ #12 0xaaaab6314ed0 in run_one_test tools/testing/selftests/bpf/test_progs.c:1062
+ #13 0xaaaab631a0a8 in main tools/testing/selftests/bpf/test_progs.c:1697
+ #14 0xffff9676d214 in __libc_start_main ../csu/libc-start.c:308
+ #15 0xaaaab5d65990 (test_progs+0x185990)
+
+0xffff927006db is located 11 bytes inside of 16-byte region [0xffff927006d0,0xffff927006e0)
+freed by thread T0 here:
+ #0 0xaaaab5e2c7c4 in realloc (test_progs+0x24c7c4)
+ #1 0xaaaab634f4a0 in libbpf_reallocarray tools/lib/bpf/libbpf_internal.h:191
+ #2 0xaaaab634f840 in libbpf_add_mem tools/lib/bpf/btf.c:163
+ #3 0xaaaab636643c in strset_add_str_mem tools/lib/bpf/strset.c:106
+ #4 0xaaaab6366560 in strset__add_str tools/lib/bpf/strset.c:157
+ #5 0xaaaab6352d70 in btf__add_str tools/lib/bpf/btf.c:1519
+ #6 0xaaaab6353e10 in btf__add_field tools/lib/bpf/btf.c:2032
+ #7 0xaaaab6084fcc in test_btf_dump_incremental tools/testing/selftests/bpf/prog_tests/btf_dump.c:232
+ #8 0xaaaab6097530 in test_btf_dump tools/testing/selftests/bpf/prog_tests/btf_dump.c:875
+ #9 0xaaaab6314ed0 in run_one_test tools/testing/selftests/bpf/test_progs.c:1062
+ #10 0xaaaab631a0a8 in main tools/testing/selftests/bpf/test_progs.c:1697
+ #11 0xffff9676d214 in __libc_start_main ../csu/libc-start.c:308
+ #12 0xaaaab5d65990 (test_progs+0x185990)
+
+previously allocated by thread T0 here:
+ #0 0xaaaab5e2c7c4 in realloc (test_progs+0x24c7c4)
+ #1 0xaaaab634f4a0 in libbpf_reallocarray tools/lib/bpf/libbpf_internal.h:191
+ #2 0xaaaab634f840 in libbpf_add_mem tools/lib/bpf/btf.c:163
+ #3 0xaaaab636643c in strset_add_str_mem tools/lib/bpf/strset.c:106
+ #4 0xaaaab6366560 in strset__add_str tools/lib/bpf/strset.c:157
+ #5 0xaaaab6352d70 in btf__add_str tools/lib/bpf/btf.c:1519
+ #6 0xaaaab6353ff0 in btf_add_enum_common tools/lib/bpf/btf.c:2070
+ #7 0xaaaab6354080 in btf__add_enum tools/lib/bpf/btf.c:2102
+ #8 0xaaaab6082f50 in test_btf_dump_incremental tools/testing/selftests/bpf/prog_tests/btf_dump.c:162
+ #9 0xaaaab6097530 in test_btf_dump tools/testing/selftests/bpf/prog_tests/btf_dump.c:875
+ #10 0xaaaab6314ed0 in run_one_test tools/testing/selftests/bpf/test_progs.c:1062
+ #11 0xaaaab631a0a8 in main tools/testing/selftests/bpf/test_progs.c:1697
+ #12 0xffff9676d214 in __libc_start_main ../csu/libc-start.c:308
+ #13 0xaaaab5d65990 (test_progs+0x185990)
+
+The reason is that the key stored in hash table name_map is a string
+address, and the string memory is allocated by realloc() function, when
+the memory is resized by realloc() later, the old memory may be freed,
+so the address stored in name_map references to a freed memory, causing
+use-after-free.
+
+Fix it by storing duplicated string address in name_map.
+
+Fixes: 919d2b1dbb07 ("libbpf: Allow modification of BTF and add btf__add_str API")
+Signed-off-by: Xu Kuohai <xukuohai@huawei.com>
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Acked-by: Martin KaFai Lau <martin.lau@kernel.org>
+Link: https://lore.kernel.org/bpf/20221011120108.782373-2-xukuohai@huaweicloud.com
+---
+ src/btf_dump.c | 29 ++++++++++++++++++++++++++---
+ 1 file changed, 26 insertions(+), 3 deletions(-)
+
+diff --git a/src/btf_dump.c b/src/btf_dump.c
+index 2f9d685..9562c21 100644
+--- a/src/btf_dump.c
++++ b/src/btf_dump.c
+@@ -188,6 +188,17 @@ static int btf_dump_resize(struct btf_dump *d)
+ return 0;
+ }
+
++static void btf_dump_free_names(struct hashmap *map)
++{
++ size_t bkt;
++ struct hashmap_entry *cur;
++
++ hashmap__for_each_entry(map, cur, bkt)
++ free((void *)cur->key);
++
++ hashmap__free(map);
++}
++
+ void btf_dump__free(struct btf_dump *d)
+ {
+ int i;
+@@ -206,8 +217,8 @@ void btf_dump__free(struct btf_dump *d)
+ free(d->cached_names);
+ free(d->emit_queue);
+ free(d->decl_stack);
+- hashmap__free(d->type_names);
+- hashmap__free(d->ident_names);
++ btf_dump_free_names(d->type_names);
++ btf_dump_free_names(d->ident_names);
+
+ free(d);
+ }
+@@ -1392,11 +1403,23 @@ static void btf_dump_emit_type_chain(struct btf_dump *d,
+ static size_t btf_dump_name_dups(struct btf_dump *d, struct hashmap *name_map,
+ const char *orig_name)
+ {
++ char *old_name, *new_name;
+ size_t dup_cnt = 0;
++ int err;
++
++ new_name = strdup(orig_name);
++ if (!new_name)
++ return 1;
+
+ hashmap__find(name_map, orig_name, (void **)&dup_cnt);
+ dup_cnt++;
+- hashmap__set(name_map, orig_name, (void *)dup_cnt, NULL, NULL);
++
++ err = hashmap__set(name_map, new_name, (void *)dup_cnt,
++ (const void **)&old_name, NULL);
++ if (err)
++ free(new_name);
++
++ free(old_name);
+
+ return dup_cnt;
+ }
+--
+2.30.2
+
--- /dev/null
+From 5e9bdf2adcd61c1dcda4f0db8f13796af7ecc938 Mon Sep 17 00:00:00 2001
+From: Shung-Hsi Yu <shung-hsi.yu@suse.com>
+Date: Wed, 12 Oct 2022 10:23:53 +0800
+Subject: libbpf: Fix null-pointer dereference in find_prog_by_sec_insn()
+
+When there are no program sections, obj->programs is left unallocated,
+and find_prog_by_sec_insn()'s search lands on &obj->programs[0] == NULL,
+and will cause null-pointer dereference in the following access to
+prog->sec_idx.
+
+Guard the search with obj->nr_programs similar to what's being done in
+__bpf_program__iter() to prevent null-pointer access from happening.
+
+Fixes: db2b8b06423c ("libbpf: Support CO-RE relocations for multi-prog sections")
+Signed-off-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Link: https://lore.kernel.org/bpf/20221012022353.7350-4-shung-hsi.yu@suse.com
+---
+ src/libbpf.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/libbpf.c b/src/libbpf.c
+index 6ae748f..f8794e5 100644
+--- a/src/libbpf.c
++++ b/src/libbpf.c
+@@ -3502,6 +3502,9 @@ static struct bpf_program *find_prog_by_sec_insn(const struct bpf_object *obj,
+ int l = 0, r = obj->nr_programs - 1, m;
+ struct bpf_program *prog;
+
++ if (!obj->nr_programs)
++ return NULL;
++
+ while (l < r) {
+ m = l + (r - l + 1) / 2;
+ prog = &obj->programs[m];
+--
+2.30.2
+
--- /dev/null
+0001-libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch
+0002-libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch
--- /dev/null
+#!/usr/bin/make -f
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+export DEB_CFLAGS_MAINT_APPEND = -Werror=implicit-function-declaration
+include /usr/share/dpkg/pkg-info.mk
+include /usr/share/dpkg/architecture.mk
+
+ifeq (,$(findstring terse,$(DEB_BUILD_OPTIONS)))
+ VERBOSE=1
+endif
+
+%:
+ dh $@ --sourcedirectory=src
+
+override_dh_gencontrol:
+ dh_gencontrol -- -v1:$(DEB_VERSION)
+
+override_dh_makeshlibs:
+ dh_makeshlibs -- -v1:$(DEB_VERSION)
+
+override_dh_auto_build:
+ dh_auto_build -- LIBSUBDIR=lib/$(DEB_HOST_MULTIARCH) V=$(VERBOSE)
+
+override_dh_auto_install:
+ dh_auto_install -- LIBSUBDIR=lib/$(DEB_HOST_MULTIARCH) V=$(VERBOSE)
--- /dev/null
+3.0 (quilt)
--- /dev/null
+---
+Bug-Database: https://github.com/libbpf/libbpf/issues
+Bug-Submit: https://github.com/libbpf/libbpf/issues/new
+Repository: https://github.com/libbpf/libbpf.git
+Repository-Browse: https://github.com/libbpf/libbpf
--- /dev/null
+version=4
+
+opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%libbpf-$1.tar.gz%" \
+ https://github.com/libbpf/libbpf/tags \
+ (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate