Date: Monday, February 13, 2023 @ 09:18:50
Author: freswa
Revision: 468706
archrelease: copy trunk to testing-x86_64
Added:
iproute2/repos/testing-x86_64/
iproute2/repos/testing-x86_64/0001-make-iproute2-fhs-compliant.patch
(from rev 468705, iproute2/trunk/0001-make-iproute2-fhs-compliant.patch)
iproute2/repos/testing-x86_64/PKGBUILD
(from rev 468705, iproute2/trunk/PKGBUILD)
iproute2/repos/testing-x86_64/bdb5.3.patch
(from rev 468705, iproute2/trunk/bdb5.3.patch)
iproute2/repos/testing-x86_64/fix_overlapping_buffers.patch
(from rev 468705, iproute2/trunk/fix_overlapping_buffers.patch)
iproute2/repos/testing-x86_64/keys/
----------------------------------------+
0001-make-iproute2-fhs-compliant.patch | 103 +++++++++++++++++++++++++++++++
PKGBUILD | 76 ++++++++++++++++++++++
bdb5.3.patch | 22 ++++++
fix_overlapping_buffers.patch | 46 +++++++++++++
4 files changed, 247 insertions(+)
Copied: iproute2/repos/testing-x86_64/0001-make-iproute2-fhs-compliant.patch
(from rev 468705, iproute2/trunk/0001-make-iproute2-fhs-compliant.patch)
===================================================================
--- testing-x86_64/0001-make-iproute2-fhs-compliant.patch
(rev 0)
+++ testing-x86_64/0001-make-iproute2-fhs-compliant.patch 2023-02-13
09:18:50 UTC (rev 468706)
@@ -0,0 +1,103 @@
+From d8d8dd628302f5bde4f55f11137690bf40abaa88 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <[email protected]>
+Date: Thu, 28 Jul 2016 08:49:20 +0200
+Subject: [PATCH 1/1] make iproute2 fhs compliant
+
+---
+ Makefile | 2 +-
+ netem/Makefile | 4 ++--
+ tc/q_netem.c | 2 +-
+ tc/tc_util.c | 15 +++++++++++++++
+ tc/tc_util.h | 1 +
+ 5 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index f6214534..f80f46c9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -32,7 +32,7 @@ DBM_INCLUDE:=$(DESTDIR)/usr/include
+
+ SHARED_LIBS = y
+
+-DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\"
++DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" -DDATADIR=\"$(DATADIR)\"
+ ifneq ($(SHARED_LIBS),y)
+ DEFINES+= -DNO_SHARED_LIBS
+ endif
+diff --git a/netem/Makefile b/netem/Makefile
+index ba4c5a76..cb197afa 100644
+--- a/netem/Makefile
++++ b/netem/Makefile
+@@ -23,9 +23,9 @@ stats: stats.c
+ $(HOSTCC) $(CCOPTS) -I../include -o $@ [email protected] -lm
+
+ install: all
+- mkdir -p $(DESTDIR)$(LIBDIR)/tc
++ mkdir -p $(DESTDIR)$(DATADIR)/tc
+ for i in $(DISTDATA); \
+- do install -m 644 $$i $(DESTDIR)$(LIBDIR)/tc; \
++ do install -m 644 $$i $(DESTDIR)$(DATADIR)/tc; \
+ done
+
+ clean:
+diff --git a/tc/q_netem.c b/tc/q_netem.c
+index f45a64b9..83fa952d 100644
+--- a/tc/q_netem.c
++++ b/tc/q_netem.c
+@@ -128,7 +128,7 @@ static int get_distribution(const char *type, __s16 *data,
int maxdata)
+ char *line = NULL;
+ char name[128];
+
+- snprintf(name, sizeof(name), "%s/%s.dist", get_tc_lib(), type);
++ snprintf(name, sizeof(name), "%s/%s.dist", get_tc_datadir(), type);
+ f = fopen(name, "r");
+ if (f == NULL) {
+ fprintf(stderr, "No distribution data for %s (%s: %s)\n",
+diff --git a/tc/tc_util.c b/tc/tc_util.c
+index ba34aed7..0adbb9ba 100644
+--- a/tc/tc_util.c
++++ b/tc/tc_util.c
+@@ -31,6 +31,10 @@
+ #define LIBDIR "/usr/lib"
+ #endif
+
++#ifndef DATADIR
++#define DATADIR "/usr/share"
++#endif
++
+ static struct db_names *cls_names;
+
+ #define NAMES_DB "/etc/iproute2/tc_cls"
+@@ -72,6 +76,17 @@ const char *get_tc_lib(void)
+ return lib_dir;
+ }
+
++const char *get_tc_datadir(void)
++{
++ const char *data_dir;
++
++ data_dir = getenv("TC_DATA_DIR");
++ if (!data_dir)
++ data_dir = DATADIR "/tc/";
++
++ return data_dir;
++}
++
+ int get_qdisc_handle(__u32 *h, const char *str)
+ {
+ __u32 maj;
+diff --git a/tc/tc_util.h b/tc/tc_util.h
+index b197bcdd..e812b895 100644
+--- a/tc/tc_util.h
++++ b/tc/tc_util.h
+@@ -71,6 +71,7 @@ struct exec_util {
+ };
+
+ const char *get_tc_lib(void);
++const char *get_tc_datadir(void);
+
+ struct qdisc_util *get_qdisc_kind(const char *str);
+ struct filter_util *get_filter_kind(const char *str);
+--
+2.35.1
+
Copied: iproute2/repos/testing-x86_64/PKGBUILD (from rev 468705,
iproute2/trunk/PKGBUILD)
===================================================================
--- testing-x86_64/PKGBUILD (rev 0)
+++ testing-x86_64/PKGBUILD 2023-02-13 09:18:50 UTC (rev 468706)
@@ -0,0 +1,76 @@
+# Maintainer: Christian Hesse <[email protected]>
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Judd Vinet <[email protected]>
+
+pkgname=iproute2
+pkgver=6.1.0
+pkgrel=5
+pkgdesc='IP Routing Utilities'
+arch=('x86_64')
+license=('GPL2')
+url='https://git.kernel.org/pub/scm/network/iproute2/iproute2.git'
+depends=('glibc' 'iptables' 'libcap' 'libelf' 'libbpf')
+makedepends=('db5.3')
+optdepends=('db5.3: userspace arp daemon'
+ 'linux-atm: ATM support'
+ 'python: for routel')
+provides=('iproute')
+backup=('etc/iproute2/bpf_pinning'
+ 'etc/iproute2/ematch_map'
+ 'etc/iproute2/group'
+ 'etc/iproute2/nl_protos'
+ 'etc/iproute2/rt_dsfield'
+ 'etc/iproute2/rt_protos'
+ 'etc/iproute2/rt_realms'
+ 'etc/iproute2/rt_scopes'
+ 'etc/iproute2/rt_tables')
+makedepends=('linux-atm')
+options=('staticlibs')
+validpgpkeys=('9F6FC345B05BE7E766B83C8F80A77F6095CDE47E') # Stephen Hemminger
+source=("https://www.kernel.org/pub/linux/utils/net/${pkgname}/${pkgname}-${pkgver}.tar."{xz,sign}
+ '0001-make-iproute2-fhs-compliant.patch'
+ 'fix_overlapping_buffers.patch'
+ 'bdb5.3.patch')
+sha256sums=('5ce12a0fec6b212725ef218735941b2dab76244db7e72646a76021b0537b43ab'
+ 'SKIP'
+ '758b82bd61ed7512d215efafd5fab5ae7a28fbfa6161b85e2ce7373285e56a5d'
+ '7d2fb8ba06f3b73a8fa3ab673b8f1ad41c0e4fd85e3c31a8d4002a1b074ec1ae'
+ '908de44ee99bf78669e7c513298fc2a22ca9d7e816a8f99788b1e9b091035cf4')
+
+prepare() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ # set correct fhs structure
+ patch -Np1 -i "${srcdir}"/0001-make-iproute2-fhs-compliant.patch
+
+ # use Berkeley DB 5.3
+ patch -Np1 -i "${srcdir}"/bdb5.3.patch
+
+ # fix overlapping buffers leading to cut off IPv6 adresses since glibc 2.37
+ # See FS#77451 and
+ #
https://lore.kernel.org/netdev/[email protected]/T/#u
+ patch -Np1 -i "${srcdir}"/fix_overlapping_buffers.patch
+
+ # do not treat warnings as errors
+ sed -i 's/-Werror//' Makefile
+
+}
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ export CFLAGS+=' -ffat-lto-objects'
+
+ ./configure
+ make DBM_INCLUDE='/usr/include/db5.3'
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make DESTDIR="${pkgdir}" SBINDIR="/usr/bin" install
+
+ # libnetlink isn't installed, install it FS#19385
+ install -Dm0644 include/libnetlink.h "${pkgdir}/usr/include/libnetlink.h"
+ install -Dm0644 lib/libnetlink.a "${pkgdir}/usr/lib/libnetlink.a"
+}
Copied: iproute2/repos/testing-x86_64/bdb5.3.patch (from rev 468705,
iproute2/trunk/bdb5.3.patch)
===================================================================
--- testing-x86_64/bdb5.3.patch (rev 0)
+++ testing-x86_64/bdb5.3.patch 2023-02-13 09:18:50 UTC (rev 468706)
@@ -0,0 +1,22 @@
+--- aaa/configure 2022-12-13 01:08:01.607329918 +0100
++++ bbb/configure 2022-12-13 01:08:58.083857594 +0100
+@@ -433,7 +433,7 @@
+ return 0;
+ }
+ EOF
+- if $CC -I$INCLUDE -o $TMPDIR/dbtest $TMPDIR/dbtest.c -ldb >/dev/null
2>&1; then
++ if $CC -I$INCLUDE -I/usr/include/db5.3 -o $TMPDIR/dbtest $TMPDIR/dbtest.c
-ldb-5.3 >/dev/null 2>&1; then
+ echo "HAVE_BERKELEY_DB:=y" >>$CONFIG
+ echo "yes"
+ else
+--- aaa/misc/Makefile 2022-12-13 12:21:04.709608051 +0100
++++ bbb/misc/Makefile 2022-12-13 12:21:19.966264418 +0100
+@@ -25,7 +25,7 @@
+ $(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o rtacct rtacct.c
$(LDLIBS) -lm
+
+ arpd: arpd.c
+- $(QUIET_CC)$(CC) $(CFLAGS) -I$(DBM_INCLUDE) $(CPPFLAGS) $(LDFLAGS) -o
arpd arpd.c $(LDLIBS) -ldb
++ $(QUIET_CC)$(CC) $(CFLAGS) -I$(DBM_INCLUDE) $(CPPFLAGS) $(LDFLAGS) -o
arpd arpd.c $(LDLIBS) -ldb-5.3
+
+ ssfilter.tab.c: ssfilter.y
+ $(QUIET_YACC)$(YACC) -b ssfilter ssfilter.y
Copied: iproute2/repos/testing-x86_64/fix_overlapping_buffers.patch (from rev
468705, iproute2/trunk/fix_overlapping_buffers.patch)
===================================================================
--- testing-x86_64/fix_overlapping_buffers.patch
(rev 0)
+++ testing-x86_64/fix_overlapping_buffers.patch 2023-02-13 09:18:50 UTC
(rev 468706)
@@ -0,0 +1,46 @@
+Fix overlapping buffers passed to strncpy which is UB. format_host_rta_r writes
+to the buffer passed to it, so hostname (derived from b1) & b1 partly overlap.
+
+This gets worse with sys-libs/glibc-2.37 where the ip route output can be
truncated,
+but it was UB anyway and you can see it occurring w/ glibc-2.36.
+
+Bug:
https://lore.kernel.org/netdev/[email protected]/T/#u
+Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30112
+Thanks-to: Doug Freed <[email protected]>
+Signed-off-by: Sam James <[email protected]>
+---
+ ip/iproute.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/ip/iproute.c b/ip/iproute.c
+index 0bab0fdf..a7cd9543 100644
+--- a/ip/iproute.c
++++ b/ip/iproute.c
+@@ -748,6 +748,7 @@ int print_route(struct nlmsghdr *n, void *arg)
+ int ret;
+
+ SPRINT_BUF(b1);
++ SPRINT_BUF(b2);
+
+ if (n->nlmsg_type != RTM_NEWROUTE && n->nlmsg_type != RTM_DELROUTE) {
+ fprintf(stderr, "Not a route: %08x %08x %08x\n",
+@@ -809,7 +810,7 @@ int print_route(struct nlmsghdr *n, void *arg)
+ r->rtm_dst_len);
+ } else {
+ const char *hostname = format_host_rta_r(family,
tb[RTA_DST],
+- b1, sizeof(b1));
++ b2, sizeof(b2));
+ if (hostname)
+ strncpy(b1, hostname, sizeof(b1) - 1);
+ }
+@@ -832,7 +833,7 @@ int print_route(struct nlmsghdr *n, void *arg)
+ r->rtm_src_len);
+ } else {
+ const char *hostname = format_host_rta_r(family,
tb[RTA_SRC],
+- b1, sizeof(b1));
++ b2, sizeof(b2));
+ if (hostname)
+ strncpy(b1, hostname, sizeof(b1) - 1);
+ }
+--
+2.39.1