libbpf (0.3-2+deb11u1) bullseye-security; urgency=medium
authorAdrian Bunk <bunk@debian.org>
Thu, 24 Apr 2025 12:56:45 +0000 (15:56 +0300)
committerAdrian Bunk <bunk@debian.org>
Thu, 24 Apr 2025 12:56:45 +0000 (15:56 +0300)
  * 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()

[dgit import unpatched libbpf 0.3-2+deb11u1]

13 files changed:
1  2 
debian/changelog
debian/control
debian/copyright
debian/libbpf-dev.install
debian/libbpf0.install
debian/libbpf0.symbols
debian/patches/0001-libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch
debian/patches/0002-libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch
debian/patches/series
debian/rules
debian/source/format
debian/upstream/metadata
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f455295d165513a39942915c2b133e529fa52d17
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,72 @@@
++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
diff --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..08d6bf1713bb2d28eb3c82ec18305aa86ea4b910
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c0b873557de74649a5aca56159364c72e22476eb
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,118 @@@
++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".
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..76f28fa26af68d3f4813e69b6ad2a762f07913de
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++usr/include/*
++usr/lib/*/lib*.a
++usr/lib/*/lib*.so
++usr/lib/*/pkgconfig/*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..3ddde584198421f0d2a3fef9d36cc110f3b8b76d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++usr/lib/*/lib*.so.*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..afdf88d28e19e8a2290281235257e6c99a61dce5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,315 @@@
++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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c6645647526b6328b2e918549e3501e4344498e2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,136 @@@
++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
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..eb883fd3a29a7c5d86576e81e81f9e22c464291b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,38 @@@
++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
++
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dc510b37766ba5a7ba612fee1240987ba576c346
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++0001-libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch
++0002-libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9636311c88be06d94d5ad415b55e67869f82e0f0
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,25 @@@
++#!/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)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0b705eceab3bfe94d4cfc6ae070fd3d27da809db
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++---
++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
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0da11c6ec13e4b63d9c29614abb8bc3726e80d68
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,5 @@@
++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