From 5f04e16f74494a780bb7bc7daeee4b011200b84e9d4ffc5a70128e67c33ad36b Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Mon, 23 Aug 2021 23:18:59 +0000 Subject: [PATCH] - Add 0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch [boo#1189451] OBS-URL: https://build.opensuse.org/package/show/security:netfilter/libnl3?expand=0&rev=79 --- ...nk-add-RTNL_LINK_REASM_OVERLAPS-stat.patch | 66 +++++++++++++++++++ libnl3.changes | 6 ++ libnl3.spec | 9 +-- 3 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch diff --git a/0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch b/0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch new file mode 100644 index 0000000..fad2f5f --- /dev/null +++ b/0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch @@ -0,0 +1,66 @@ +From bab9e77c87d3b596e77d669b0a827b50e725bb62 Mon Sep 17 00:00:00 2001 +From: Ilya Pronin +Date: Fri, 3 Apr 2020 20:00:37 -0700 +Subject: [PATCH] route/link: add RTNL_LINK_REASM_OVERLAPS stat +References: https://bugzilla.suse.com/show_bug.cgi?id=1189451 + +The new stat exposes IPSTATS_MIB_REASM_OVERLAPS link stat. However, the +original motivation for this change was fixing the issue with missing RX +packets link stat. + +The regression was introduced in version 3.5.0 with commit 73c1d047, +that added a new enum constant IPSTATS_MIB_REASM_OVERLAPS. Without this +patch, IPSTATS_MIB_REASM_OVERLAPS is missing from +map_stat_id_from_IPSTATS_MIB_v2 and is mapped by it to 0. This tricks +inet6_parse_protinfo() into erroneously overwriting RTNL_LINK_RX_PACKETS +stat, which happens to have value 0, when it tries to set +IPSTATS_MIB_REASM_OVERLAPS. + +Fixes: 73c1d0479643 ('Sync linux headers to 4.19.66') + +https://github.com/thom311/libnl/pull/235 +--- + include/netlink/route/link.h | 1 + + lib/route/link.c | 1 + + lib/route/link/inet6.c | 1 + + 3 files changed, 3 insertions(+) + +diff --git include/netlink/route/link.h include/netlink/route/link.h +index 516d8e1..d0d6d2b 100644 +--- include/netlink/route/link.h ++++ include/netlink/route/link.h +@@ -93,6 +93,7 @@ typedef enum { + RTNL_LINK_IP6_ECT0PKTS, /*!< IPv6 SNMP InECT0Pkts */ + RTNL_LINK_IP6_CEPKTS, /*!< IPv6 SNMP InCEPkts */ + RTNL_LINK_RX_NOHANDLER, /*!< Received packets dropped on inactive device */ ++ RTNL_LINK_REASM_OVERLAPS, /*!< SNMP ReasmOverlaps */ + __RTNL_LINK_STATS_MAX, + } rtnl_link_stat_id_t; + +diff --git lib/route/link.c lib/route/link.c +index 9439fe6..ed6f455 100644 +--- lib/route/link.c ++++ lib/route/link.c +@@ -3007,6 +3007,7 @@ static const struct trans_tbl link_stats[] = { + __ADD(RTNL_LINK_IP6_ECT0PKTS, Ip6_InECT0Pkts), + __ADD(RTNL_LINK_IP6_CEPKTS, Ip6_InCEPkts), + __ADD(RTNL_LINK_RX_NOHANDLER, rx_nohandler), ++ __ADD(RTNL_LINK_REASM_OVERLAPS, ReasmOverlaps), + }; + + char *rtnl_link_stat2str(int st, char *buf, size_t len) +diff --git lib/route/link/inet6.c lib/route/link/inet6.c +index c977b61..1ad49bf 100644 +--- lib/route/link/inet6.c ++++ lib/route/link/inet6.c +@@ -135,6 +135,7 @@ static const uint8_t map_stat_id_from_IPSTATS_MIB_v2[__IPSTATS_MIB_MAX] = { + [33] = RTNL_LINK_IP6_ECT1PKTS, /* IPSTATS_MIB_ECT1PKTS */ + [34] = RTNL_LINK_IP6_ECT0PKTS, /* IPSTATS_MIB_ECT0PKTS */ + [35] = RTNL_LINK_IP6_CEPKTS, /* IPSTATS_MIB_CEPKTS */ ++ [36] = RTNL_LINK_REASM_OVERLAPS, /* IPSTATS_MIB_REASM_OVERLAPS */ + }; + + static int inet6_parse_protinfo(struct rtnl_link *link, struct nlattr *attr, +-- +2.32.0 + diff --git a/libnl3.changes b/libnl3.changes index 49c028e..22498fb 100644 --- a/libnl3.changes +++ b/libnl3.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Aug 23 22:16:10 UTC 2021 - Jan Engelhardt + +- Add 0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch + [boo#1189451] + ------------------------------------------------------------------- Wed Oct 14 09:12:27 UTC 2020 - Jan Engelhardt diff --git a/libnl3.spec b/libnl3.spec index e917ace..fbef6c8 100644 --- a/libnl3.spec +++ b/libnl3.spec @@ -1,7 +1,7 @@ # # spec file for package libnl3 # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -23,7 +23,7 @@ Name: libnl3 Version: 3.5.0 Release: 0 Summary: Convenience library for working with Netlink sockets -License: LGPL-2.1-only AND GPL-2.0-only +License: GPL-2.0-only AND LGPL-2.1-only Group: Development/Libraries/C and C++ URL: http://www.carisma.slowglass.com/~tgr/libnl/#(outdated) @@ -31,6 +31,7 @@ URL: http://www.carisma.slowglass.com/~tgr/libnl/#(outdated) Source: https://github.com/thom311/libnl/releases/download/libnl%uver/libnl-%version.tar.gz Source2: https://github.com/thom311/libnl/releases/download/libnl%uver/libnl-%version.tar.gz.sig Source3: baselibs.conf +Patch1: 0001-route-link-add-RTNL_LINK_REASM_OVERLAPS-stat.patch BuildRequires: bison >= 2.4 BuildRequires: fdupes BuildRequires: flex >= 2.5.19 @@ -68,7 +69,7 @@ Netlink protocol based Linux kernel interfaces. %package -n libnl-config Summary: Name maps for libnl -License: LGPL-2.1-only AND GPL-2.0-only +License: GPL-2.0-only AND LGPL-2.1-only Group: Productivity/Networking/Security %if 0%{?suse_version} >= 1130 BuildArch: noarch @@ -92,7 +93,7 @@ demonstrated. %endif %prep -%autosetup -p1 -n libnl-%version +%autosetup -p0 -n libnl-%version %build %configure --disable-static