Compare commits
11 Commits
cc17829744
...
221c317069
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
221c317069 | ||
|
|
18fb8c7183 | ||
|
|
b49e8edefb | ||
|
|
f00eb7a1ea | ||
|
|
b80e93cedc | ||
|
|
c1aa0018e8 | ||
|
|
27ff3cb4c7 | ||
|
|
8b95cf1e88 | ||
|
|
18000879e2 | ||
|
|
b8d2ee507f | ||
|
|
73202a00c5 |
114
0001-add-NM-to-support-wifi6.patch
Normal file
114
0001-add-NM-to-support-wifi6.patch
Normal file
@ -0,0 +1,114 @@
|
||||
From cf567e3b6cd6b596de9f8e02a8de473eddad5b13 Mon Sep 17 00:00:00 2001
|
||||
From: liuzhilin <liuzhilin@uniontech.com>
|
||||
Date: Mon, 15 Apr 2024 10:53:42 +0800
|
||||
Subject: [PATCH] add-NM-to-support-wifi6
|
||||
|
||||
DESC:Support wireless networks connecting WIFI6 encryption methods,
|
||||
so this demand is achieved in NetworkManager, KF5-NetworkManager-QT,
|
||||
DDE-Network-Core software package
|
||||
|
||||
---
|
||||
src/core/nm-core-utils.c | 9 ++++++++-
|
||||
src/core/nm-core-utils.h | 3 ++-
|
||||
src/core/supplicant/nm-supplicant-interface.c | 7 ++++++-
|
||||
src/libnm-core-public/nm-dbus-interface.h | 2 ++
|
||||
4 files changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/core/nm-core-utils.c b/src/core/nm-core-utils.c
|
||||
index 5442efb..8e030a3 100644
|
||||
--- a/src/core/nm-core-utils.c
|
||||
+++ b/src/core/nm-core-utils.c
|
||||
@@ -4783,13 +4783,15 @@ get_max_rate_vht(const guint8 *bytes, guint len, guint32 *out_maxrate)
|
||||
#define WLAN_EID_HT_CAPABILITY 45
|
||||
#define WLAN_EID_VHT_CAPABILITY 191
|
||||
#define WLAN_EID_VENDOR_SPECIFIC 221
|
||||
+#define WLAN_EID_EXTENSION 255
|
||||
|
||||
void
|
||||
nm_wifi_utils_parse_ies(const guint8 *bytes,
|
||||
gsize len,
|
||||
guint32 *out_max_rate,
|
||||
gboolean *out_metered,
|
||||
- gboolean *out_owe_transition_mode)
|
||||
+ gboolean *out_owe_transition_mode,
|
||||
+ gboolean *out_he_support)
|
||||
{
|
||||
guint8 id, elem_len;
|
||||
guint32 m;
|
||||
@@ -4797,6 +4799,7 @@ nm_wifi_utils_parse_ies(const guint8 *bytes,
|
||||
NM_SET_OUT(out_max_rate, 0);
|
||||
NM_SET_OUT(out_metered, FALSE);
|
||||
NM_SET_OUT(out_owe_transition_mode, FALSE);
|
||||
+ NM_SET_OUT(out_he_support, FALSE);
|
||||
|
||||
while (len) {
|
||||
if (len < 2)
|
||||
@@ -4835,6 +4838,10 @@ nm_wifi_utils_parse_ies(const guint8 *bytes,
|
||||
&& bytes[3] == 0x1c) /* OUI type: OWE Transition Mode */
|
||||
NM_SET_OUT(out_owe_transition_mode, TRUE);
|
||||
break;
|
||||
+ case WLAN_EID_EXTENSION:
|
||||
+ if (elem_len > 0 && bytes[0] == 0x23)
|
||||
+ NM_SET_OUT(out_he_support, TRUE);
|
||||
+ break;
|
||||
}
|
||||
|
||||
len -= elem_len;
|
||||
diff --git a/src/core/nm-core-utils.h b/src/core/nm-core-utils.h
|
||||
index 5511250..551c6fa 100644
|
||||
--- a/src/core/nm-core-utils.h
|
||||
+++ b/src/core/nm-core-utils.h
|
||||
@@ -456,7 +456,8 @@ void nm_wifi_utils_parse_ies(const guint8 *bytes,
|
||||
gsize len,
|
||||
guint32 *out_max_rate,
|
||||
gboolean *out_metered,
|
||||
- gboolean *out_owe_transition_mode);
|
||||
+ gboolean *out_owe_transition_mode,
|
||||
+ gboolean *out_he_support);
|
||||
|
||||
guint8 nm_wifi_utils_level_to_quality(int val);
|
||||
|
||||
diff --git a/src/core/supplicant/nm-supplicant-interface.c b/src/core/supplicant/nm-supplicant-interface.c
|
||||
index 1852572..ddb6b2f 100644
|
||||
--- a/src/core/supplicant/nm-supplicant-interface.c
|
||||
+++ b/src/core/supplicant/nm-supplicant-interface.c
|
||||
@@ -764,10 +764,15 @@ _bss_info_properties_changed(NMSupplicantInterface *self,
|
||||
if (v_v) {
|
||||
gboolean p_owe_transition_mode;
|
||||
gboolean p_metered;
|
||||
+ gboolean p_he_support;
|
||||
guint32 rate;
|
||||
|
||||
arr_data = g_variant_get_fixed_array(v_v, &arr_len, 1);
|
||||
- nm_wifi_utils_parse_ies(arr_data, arr_len, &rate, &p_metered, &p_owe_transition_mode);
|
||||
+ nm_wifi_utils_parse_ies(arr_data, arr_len, &rate, &p_metered, &p_owe_transition_mode, &p_he_support);
|
||||
+ if (p_he_support)
|
||||
+ bss_info->rsn_flags |= NM_802_11_AP_FLAGS_He;
|
||||
+ else
|
||||
+ bss_info->rsn_flags &= ~NM_802_11_AP_FLAGS_He;
|
||||
p_max_rate = NM_MAX(p_max_rate, rate);
|
||||
p_max_rate_has = TRUE;
|
||||
g_variant_unref(v_v);
|
||||
diff --git a/src/libnm-core-public/nm-dbus-interface.h b/src/libnm-core-public/nm-dbus-interface.h
|
||||
index b490e3b..9624618 100644
|
||||
--- a/src/libnm-core-public/nm-dbus-interface.h
|
||||
+++ b/src/libnm-core-public/nm-dbus-interface.h
|
||||
@@ -336,6 +336,7 @@ typedef enum /*< flags >*/ {
|
||||
* @NM_802_11_AP_FLAGS_WPS: access point supports some WPS method
|
||||
* @NM_802_11_AP_FLAGS_WPS_PBC: access point supports push-button WPS
|
||||
* @NM_802_11_AP_FLAGS_WPS_PIN: access point supports PIN-based WPS
|
||||
+ * @NM_802_11_AP_FLAGS_He: access point support high efficiency (new feature in 802.11ax)
|
||||
*
|
||||
* 802.11 access point flags.
|
||||
**/
|
||||
@@ -345,6 +346,7 @@ typedef enum /*< underscore_name=nm_802_11_ap_flags, flags >*/ {
|
||||
NM_802_11_AP_FLAGS_WPS = 0x00000002,
|
||||
NM_802_11_AP_FLAGS_WPS_PBC = 0x00000004,
|
||||
NM_802_11_AP_FLAGS_WPS_PIN = 0x00000008,
|
||||
+ NM_802_11_AP_FLAGS_He = 0x00000010,
|
||||
} NM80211ApFlags;
|
||||
|
||||
/**
|
||||
--
|
||||
2.39.3
|
||||
|
||||
Binary file not shown.
BIN
NetworkManager-1.44.2.tar.xz
Normal file
BIN
NetworkManager-1.44.2.tar.xz
Normal file
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
%global wireless_tools_version 1:28-0pre9
|
||||
%global wpa_supplicant_version 1:1.1
|
||||
%global ppp_version %(sed -n 's/^#define\\s*VERSION\\s*"\\([^\\s]*\\)"$/\\1/p' %{_includedir}/pppd/patchlevel.h 2>/dev/null | grep . || echo bad)
|
||||
%global ppp_version %(pkg-config --modeversion pppd 2>/dev/null || sed -n 's/^#define\\s*VERSION\\s*"\\([^\\s]*\\)"$/\\1/p' %{_includedir}/pppd/patchlevel.h 2>/dev/null | grep . || echo bad)
|
||||
%global glib2_version %(pkg-config --modversion glib-2.0 2>/dev/null || echo bad)
|
||||
%global real_version 1.42.8
|
||||
%global snapshot %{nil}
|
||||
@ -18,6 +18,8 @@
|
||||
|
||||
%global snap %{?snapshot_dot}%{?git_sha_dot}
|
||||
%global real_version_major %(printf '%s' '%{real_version}' | sed -n 's/^\\([1-9][0-9]*\\.[1-9][0-9]*\\)\\.[0-9][0-9]*$/\\1/p')
|
||||
%global systemd_units NetworkManager.service NetworkManager-wait-online.service NetworkManager-dispatcher.service nm-priv-helper.service
|
||||
%global systemd_units_cloud_setup nm-cloud-setup.service nm-cloud-setup.timer
|
||||
|
||||
%bcond_without adsl
|
||||
%bcond_without bluetooth
|
||||
@ -47,10 +49,10 @@
|
||||
%global dhcp_default dhclient
|
||||
|
||||
Name: NetworkManager
|
||||
Version: 1.42.8
|
||||
Version: 1.44.2
|
||||
Epoch: 1
|
||||
Release: 2
|
||||
Summary: Network Link Manager and User Applications
|
||||
Release: 3
|
||||
Summary: 4
|
||||
License: GPLv2+
|
||||
URL: https://networkmanager.dev/
|
||||
Source: https://download.gnome.org/sources/NetworkManager/%{real_version_major}/%{name}-%{version}.tar.xz
|
||||
@ -59,9 +61,12 @@ Source2: 00-server.conf
|
||||
Patch1: fix-wants-and-add-requires.patch
|
||||
Patch2: bugfix-use-PartOf-replace-Requires-in-service.patch
|
||||
Patch3: bugfix-recover-to-30s-timeout-in-NetworkManager-wait-online.patch
|
||||
Patch4: NetworkManager-Add-sw64-architecture.patch
|
||||
Patch5: delete-lease-file-when-connection-deleted.patch
|
||||
Patch6: 0001-add-NM-to-support-wifi6.patch
|
||||
|
||||
Patch6005: NetworkManager-Add-sw64-architecture.patch
|
||||
#Patch6006: delete-lease-file-when-connection-deleted.patch
|
||||
Patch6000: backport-lldp-fix-crash-dereferencing-NULL-pointer-during-deb.patch
|
||||
Patch6001: backport-lldp-fix-multiple-access-to-argument-in-logging-macr.patch
|
||||
|
||||
BuildRequires: gcc libtool pkgconfig automake autoconf intltool gettext-devel ppp-devel gnutls-devel
|
||||
BuildRequires: dbus-devel glib2-devel gobject-introspection-devel jansson-devel
|
||||
@ -409,7 +414,7 @@ fi
|
||||
/usr/bin/udevadm control --reload-rules || :
|
||||
/usr/bin/udevadm trigger --subsystem-match=net || :
|
||||
|
||||
%systemd_postun NetworkManager.service NetworkManager-wait-online.service NetworkManager-dispatcher.service nm-priv-helper.service
|
||||
%systemd_postun %{systemd_units}
|
||||
|
||||
%ldconfig_scriptlets glib
|
||||
%ldconfig_scriptlets libnm
|
||||
@ -481,6 +486,7 @@ fi
|
||||
%{systemd_dir}/nm-cloud-setup.timer
|
||||
%{_prefix}/lib/%{name}/dispatcher.d/90-nm-cloud-setup.sh
|
||||
%{_prefix}/lib/%{name}/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh
|
||||
%{_prefix}/lib/%{name}/dispatcher.d/pre-up.d/90-nm-cloud-setup.sh
|
||||
%endif
|
||||
|
||||
%if %{with team}
|
||||
@ -545,6 +551,40 @@ fi
|
||||
%{_datadir}/gtk-doc/html/NetworkManager/*
|
||||
|
||||
%changelog
|
||||
* Wed Oct 16 2024 zhongxuan <zhongxuan2@huawei.com> - 1:1.44.2-3
|
||||
- Type:CVE
|
||||
- CVE:CVE-2024-6501
|
||||
- SUG:NA
|
||||
- DESC:fix CVE-2024-6501
|
||||
|
||||
* Tue Apr 9 2024 liuzhilin <liuzhilin@uniontech.com> - 1:1.44.2-2
|
||||
- add NM to support wifi6(fix dde-network-core build error)
|
||||
- Type:requirement
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:Support wireless networks connecting WIFI6 encryption methods,
|
||||
so this demand is achieved in NetworkManager, KF5-NetworkManager-QT,
|
||||
DDE-Network-Core software package
|
||||
|
||||
* Mon Feb 5 2024 liubo <liubo335@huawei.com> - 1:1.44.2-1
|
||||
- Type:requirement
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:update to 1.44.2
|
||||
|
||||
* Tue Aug 29 2023 gaoxingwang <gaoxingwang1@huawei.com> - 1:1.42.8-4
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:sync bugfix patch: delete lease file when connection deleted and
|
||||
update the way to get ppp version because patchlevel.h no more provided in ppp-2.5.0
|
||||
|
||||
* Thu Aug 24 2023 gaoxingwang <gaoxingwang1@huawei.com> - 1:1.42.8-3
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:NetworkManager-dispatcher.service not enabled when installed due to systemd_units not defined
|
||||
|
||||
* Tue Aug 8 2023 gaoxingwang <gaoxingwang1@huawei.com> - 1:1.42.8-2
|
||||
- Type:requirement
|
||||
- CVE:NA
|
||||
|
||||
@ -0,0 +1,306 @@
|
||||
From c2cddd3241349c0d5612d7603261c182fbc6d7c3 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Haller <thaller@redhat.com>
|
||||
Date: Fri, 31 May 2024 10:34:28 +0200
|
||||
Subject: [PATCH] lldp: fix crash dereferencing NULL pointer during debug
|
||||
logging
|
||||
|
||||
During nm_lldp_neighbor_parse(), the NMLldpNeighbor is not yet added to
|
||||
the NMLldpRX instance. Consequently, n->lldp_rx is NULL.
|
||||
|
||||
Note how we use lldp_x for logging, because we need it for the context
|
||||
for which interface the logging statement is.
|
||||
|
||||
Thus, those debug logging statements will follow a NULL pointer and lead
|
||||
to a crash.
|
||||
|
||||
Fixes: 630de288d2e4 ('lldp: add libnm-lldp as fork of systemd's sd_lldp_rx')
|
||||
|
||||
Reference:https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1550
|
||||
Conflict:no
|
||||
---
|
||||
src/core/devices/nm-lldp-listener.c | 15 ++++++++-
|
||||
src/libnm-lldp/nm-lldp-neighbor.c | 47 +++++++++++++++--------------
|
||||
src/libnm-lldp/nm-lldp-neighbor.h | 4 ++-
|
||||
src/libnm-lldp/nm-lldp-rx.c | 2 +-
|
||||
src/libnm-lldp/nm-lldp-rx.h | 2 +-
|
||||
5 files changed, 44 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/src/core/devices/nm-lldp-listener.c b/src/core/devices/nm-lldp-listener.c
|
||||
index ac7e97f0c2..59c8f54c01 100644
|
||||
--- a/src/core/devices/nm-lldp-listener.c
|
||||
+++ b/src/core/devices/nm-lldp-listener.c
|
||||
@@ -704,9 +704,16 @@ lldp_neighbor_to_variant(LldpNeighbor *neigh)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
+static void
|
||||
+nmtst_lldp_event_handler(NMLldpRX *lldp, NMLldpRXEvent event, NMLldpNeighbor *n, void *user_data)
|
||||
+{
|
||||
+ g_assert_not_reached();
|
||||
+}
|
||||
+
|
||||
GVariant *
|
||||
nmtst_lldp_parse_from_raw(const guint8 *raw_data, gsize raw_len)
|
||||
{
|
||||
+ nm_auto(nm_lldp_rx_unrefp) NMLldpRX *lldp_rx = NULL;
|
||||
nm_auto(nm_lldp_neighbor_unrefp) NMLldpNeighbor *neighbor_nm = NULL;
|
||||
nm_auto(lldp_neighbor_freep) LldpNeighbor *neigh = NULL;
|
||||
GVariant *variant;
|
||||
@@ -714,7 +721,13 @@ nmtst_lldp_parse_from_raw(const guint8 *raw_data, gsize raw_len)
|
||||
g_assert(raw_data);
|
||||
g_assert(raw_len > 0);
|
||||
|
||||
- neighbor_nm = nm_lldp_neighbor_new_from_raw(raw_data, raw_len);
|
||||
+ lldp_rx = nm_lldp_rx_new(&((NMLldpRXConfig){
|
||||
+ .ifindex = 1,
|
||||
+ .neighbors_max = MAX_NEIGHBORS,
|
||||
+ .callback = nmtst_lldp_event_handler,
|
||||
+ }));
|
||||
+
|
||||
+ neighbor_nm = nm_lldp_neighbor_new_from_raw(lldp_rx, raw_data, raw_len);
|
||||
g_assert(neighbor_nm);
|
||||
|
||||
neigh = lldp_neighbor_new(neighbor_nm);
|
||||
diff --git a/src/libnm-lldp/nm-lldp-neighbor.c b/src/libnm-lldp/nm-lldp-neighbor.c
|
||||
index 0379cf3844..3a76ea317e 100644
|
||||
--- a/src/libnm-lldp/nm-lldp-neighbor.c
|
||||
+++ b/src/libnm-lldp/nm-lldp-neighbor.c
|
||||
@@ -65,6 +65,7 @@ parse_string(NMLldpRX *lldp_rx, char **s, const void *q, size_t n)
|
||||
const char *p = q;
|
||||
char *k;
|
||||
|
||||
+ nm_assert(lldp_rx);
|
||||
nm_assert(s);
|
||||
nm_assert(p || n == 0);
|
||||
|
||||
@@ -99,31 +100,33 @@ parse_string(NMLldpRX *lldp_rx, char **s, const void *q, size_t n)
|
||||
}
|
||||
|
||||
int
|
||||
-nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
+nm_lldp_neighbor_parse(NMLldpRX *lldp_rx, NMLldpNeighbor *n)
|
||||
{
|
||||
struct ether_header h;
|
||||
const uint8_t *p;
|
||||
size_t left;
|
||||
int r;
|
||||
|
||||
+ nm_assert(lldp_rx);
|
||||
nm_assert(n);
|
||||
+ nm_assert(!n->lldp_rx);
|
||||
|
||||
if (n->raw_size < sizeof(struct ether_header)) {
|
||||
- _LOG2D(n->lldp_rx, "Received truncated packet, ignoring.");
|
||||
+ _LOG2D(lldp_rx, "Received truncated packet, ignoring.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
memcpy(&h, NM_LLDP_NEIGHBOR_RAW(n), sizeof(h));
|
||||
|
||||
if (h.ether_type != htobe16(NM_ETHERTYPE_LLDP)) {
|
||||
- _LOG2D(n->lldp_rx, "Received packet with wrong type, ignoring.");
|
||||
+ _LOG2D(lldp_rx, "Received packet with wrong type, ignoring.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
if (h.ether_dhost[0] != 0x01 || h.ether_dhost[1] != 0x80 || h.ether_dhost[2] != 0xc2
|
||||
|| h.ether_dhost[3] != 0x00 || h.ether_dhost[4] != 0x00
|
||||
|| !NM_IN_SET(h.ether_dhost[5], 0x00, 0x03, 0x0e)) {
|
||||
- _LOG2D(n->lldp_rx, "Received packet with wrong destination address, ignoring.");
|
||||
+ _LOG2D(lldp_rx, "Received packet with wrong destination address, ignoring.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -138,7 +141,7 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
uint16_t length;
|
||||
|
||||
if (left < 2) {
|
||||
- _LOG2D(n->lldp_rx, "TLV lacks header, ignoring.");
|
||||
+ _LOG2D(lldp_rx, "TLV lacks header, ignoring.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -147,14 +150,14 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
p += 2, left -= 2;
|
||||
|
||||
if (left < length) {
|
||||
- _LOG2D(n->lldp_rx, "TLV truncated, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "TLV truncated, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case NM_LLDP_TYPE_END:
|
||||
if (length != 0) {
|
||||
- _LOG2D(n->lldp_rx, "End marker TLV not zero-sized, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "End marker TLV not zero-sized, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -166,12 +169,12 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
case NM_LLDP_TYPE_CHASSIS_ID:
|
||||
if (length < 2 || length > 256) {
|
||||
/* includes the chassis subtype, hence one extra byte */
|
||||
- _LOG2D(n->lldp_rx, "Chassis ID field size out of range, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "Chassis ID field size out of range, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
if (n->id.chassis_id) {
|
||||
- _LOG2D(n->lldp_rx, "Duplicate chassis ID field, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "Duplicate chassis ID field, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -182,12 +185,12 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
case NM_LLDP_TYPE_PORT_ID:
|
||||
if (length < 2 || length > 256) {
|
||||
/* includes the port subtype, hence one extra byte */
|
||||
- _LOG2D(n->lldp_rx, "Port ID field size out of range, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "Port ID field size out of range, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
if (n->id.port_id) {
|
||||
- _LOG2D(n->lldp_rx, "Duplicate port ID field, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "Duplicate port ID field, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -197,12 +200,12 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
|
||||
case NM_LLDP_TYPE_TTL:
|
||||
if (length != 2) {
|
||||
- _LOG2D(n->lldp_rx, "TTL field has wrong size, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "TTL field has wrong size, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
if (n->has_ttl) {
|
||||
- _LOG2D(n->lldp_rx, "Duplicate TTL field, ignoring datagram.");
|
||||
+ _LOG2D(lldp_rx, "Duplicate TTL field, ignoring datagram.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -211,26 +214,26 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
break;
|
||||
|
||||
case NM_LLDP_TYPE_PORT_DESCRIPTION:
|
||||
- r = parse_string(n->lldp_rx, &n->port_description, p, length);
|
||||
+ r = parse_string(lldp_rx, &n->port_description, p, length);
|
||||
if (r < 0)
|
||||
return r;
|
||||
break;
|
||||
|
||||
case NM_LLDP_TYPE_SYSTEM_NAME:
|
||||
- r = parse_string(n->lldp_rx, &n->system_name, p, length);
|
||||
+ r = parse_string(lldp_rx, &n->system_name, p, length);
|
||||
if (r < 0)
|
||||
return r;
|
||||
break;
|
||||
|
||||
case NM_LLDP_TYPE_SYSTEM_DESCRIPTION:
|
||||
- r = parse_string(n->lldp_rx, &n->system_description, p, length);
|
||||
+ r = parse_string(lldp_rx, &n->system_description, p, length);
|
||||
if (r < 0)
|
||||
return r;
|
||||
break;
|
||||
|
||||
case NM_LLDP_TYPE_SYSTEM_CAPABILITIES:
|
||||
if (length != 4) {
|
||||
- _LOG2D(n->lldp_rx, "System capabilities field has wrong size.");
|
||||
+ _LOG2D(lldp_rx, "System capabilities field has wrong size.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -241,13 +244,13 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
|
||||
case NM_LLDP_TYPE_PRIVATE:
|
||||
if (length < 4) {
|
||||
- _LOG2D(n->lldp_rx, "Found private TLV that is too short, ignoring.");
|
||||
+ _LOG2D(lldp_rx, "Found private TLV that is too short, ignoring.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
/* RFC 8520: MUD URL */
|
||||
if (memcmp(p, NM_LLDP_OUI_IANA_MUD, sizeof(NM_LLDP_OUI_IANA_MUD)) == 0) {
|
||||
- r = parse_string(n->lldp_rx,
|
||||
+ r = parse_string(lldp_rx,
|
||||
&n->mud_url,
|
||||
p + sizeof(NM_LLDP_OUI_IANA_MUD),
|
||||
length - sizeof(NM_LLDP_OUI_IANA_MUD));
|
||||
@@ -262,7 +265,7 @@ nm_lldp_neighbor_parse(NMLldpNeighbor *n)
|
||||
|
||||
end_marker:
|
||||
if (!n->id.chassis_id || !n->id.port_id || !n->has_ttl) {
|
||||
- _LOG2D(n->lldp_rx, "One or more mandatory TLV missing in datagram. Ignoring.");
|
||||
+ _LOG2D(lldp_rx, "One or more mandatory TLV missing in datagram. Ignoring.");
|
||||
return -NME_UNSPEC;
|
||||
}
|
||||
|
||||
@@ -741,7 +744,7 @@ nm_lldp_neighbor_new(size_t raw_size)
|
||||
}
|
||||
|
||||
NMLldpNeighbor *
|
||||
-nm_lldp_neighbor_new_from_raw(const void *raw, size_t raw_size)
|
||||
+nm_lldp_neighbor_new_from_raw(NMLldpRX *lldp_rx, const void *raw, size_t raw_size)
|
||||
{
|
||||
nm_auto(nm_lldp_neighbor_unrefp) NMLldpNeighbor *n = NULL;
|
||||
int r;
|
||||
@@ -752,7 +755,7 @@ nm_lldp_neighbor_new_from_raw(const void *raw, size_t raw_size)
|
||||
|
||||
nm_memcpy(NM_LLDP_NEIGHBOR_RAW(n), raw, raw_size);
|
||||
|
||||
- r = nm_lldp_neighbor_parse(n);
|
||||
+ r = nm_lldp_neighbor_parse(lldp_rx, n);
|
||||
if (r < 0)
|
||||
return NULL;
|
||||
|
||||
diff --git a/src/libnm-lldp/nm-lldp-neighbor.h b/src/libnm-lldp/nm-lldp-neighbor.h
|
||||
index 1adc967e7e..038591a066 100644
|
||||
--- a/src/libnm-lldp/nm-lldp-neighbor.h
|
||||
+++ b/src/libnm-lldp/nm-lldp-neighbor.h
|
||||
@@ -75,11 +75,13 @@ NM_LLDP_NEIGHBOR_TLV_DATA(const NMLldpNeighbor *n)
|
||||
return ((uint8_t *) NM_LLDP_NEIGHBOR_RAW(n)) + n->rindex + 2;
|
||||
}
|
||||
|
||||
+struct _NMLldpRX;
|
||||
+
|
||||
int nm_lldp_neighbor_prioq_compare_func(const void *a, const void *b);
|
||||
|
||||
void nm_lldp_neighbor_unlink(NMLldpNeighbor *n);
|
||||
NMLldpNeighbor *nm_lldp_neighbor_new(size_t raw_size);
|
||||
-int nm_lldp_neighbor_parse(NMLldpNeighbor *n);
|
||||
+int nm_lldp_neighbor_parse(struct _NMLldpRX *lldp_rx, NMLldpNeighbor *n);
|
||||
void nm_lldp_neighbor_start_ttl(NMLldpNeighbor *n);
|
||||
|
||||
#endif /* __NM_LLDP_NEIGHBOR_H__ */
|
||||
diff --git a/src/libnm-lldp/nm-lldp-rx.c b/src/libnm-lldp/nm-lldp-rx.c
|
||||
index 345c6d5661..90414b3ee7 100644
|
||||
--- a/src/libnm-lldp/nm-lldp-rx.c
|
||||
+++ b/src/libnm-lldp/nm-lldp-rx.c
|
||||
@@ -255,7 +255,7 @@ lldp_rx_receive_datagram(int fd, GIOCondition condition, gpointer user_data)
|
||||
} else
|
||||
n->timestamp_usec = nm_utils_get_monotonic_timestamp_usec();
|
||||
|
||||
- r = nm_lldp_neighbor_parse(n);
|
||||
+ r = nm_lldp_neighbor_parse(lldp_rx, n);
|
||||
if (r < 0) {
|
||||
_LOG2D(lldp_rx, "Failure parsing invalid LLDP datagram.");
|
||||
return G_SOURCE_CONTINUE;
|
||||
diff --git a/src/libnm-lldp/nm-lldp-rx.h b/src/libnm-lldp/nm-lldp-rx.h
|
||||
index a3f3805376..d96ffcd888 100644
|
||||
--- a/src/libnm-lldp/nm-lldp-rx.h
|
||||
+++ b/src/libnm-lldp/nm-lldp-rx.h
|
||||
@@ -68,7 +68,7 @@ NMLldpNeighbor **nm_lldp_rx_get_neighbors(NMLldpRX *lldp_rx, guint *out_len);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
-NMLldpNeighbor *nm_lldp_neighbor_new_from_raw(const void *raw, size_t raw_size);
|
||||
+NMLldpNeighbor *nm_lldp_neighbor_new_from_raw(NMLldpRX *lldp_rx, const void *raw, size_t raw_size);
|
||||
|
||||
NMLldpNeighbor *nm_lldp_neighbor_ref(NMLldpNeighbor *n);
|
||||
NMLldpNeighbor *nm_lldp_neighbor_unref(NMLldpNeighbor *n);
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
From 4365de5226aa80c01181a11988a731913e97b264 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Haller <thaller@redhat.com>
|
||||
Date: Fri, 31 May 2024 10:49:50 +0200
|
||||
Subject: [PATCH] lldp: fix multiple access to argument in logging macro
|
||||
|
||||
Fixes: 630de288d2e4 ('lldp: add libnm-lldp as fork of systemd's sd_lldp_rx')
|
||||
|
||||
Reference:https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1550
|
||||
Conflict:no
|
||||
---
|
||||
src/libnm-lldp/nm-lldp-rx-internal.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/libnm-lldp/nm-lldp-rx-internal.h b/src/libnm-lldp/nm-lldp-rx-internal.h
|
||||
index 47d063ae70..1296a9d33f 100644
|
||||
--- a/src/libnm-lldp/nm-lldp-rx-internal.h
|
||||
+++ b/src/libnm-lldp/nm-lldp-rx-internal.h
|
||||
@@ -34,7 +34,7 @@ struct _NMLldpRX {
|
||||
NMLldpRX *_lldp_rx = (lldp_rx); \
|
||||
\
|
||||
if (_NMLOG2_ENABLED(_level)) { \
|
||||
- _nm_log(level, \
|
||||
+ _nm_log(_level, \
|
||||
_NMLOG2_DOMAIN, \
|
||||
0, \
|
||||
_lldp_rx->config.log_ifname, \
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -11,7 +11,7 @@ diff --git a/data/NetworkManager.service.in b/data/NetworkManager.service.in
|
||||
index e23b3a5..b29b634 100644
|
||||
--- a/data/NetworkManager.service.in
|
||||
+++ b/data/NetworkManager.service.in
|
||||
@@ -1,9 +1,10 @@
|
||||
@@ -1,10 +1,10 @@
|
||||
[Unit]
|
||||
Description=Network Manager
|
||||
Documentation=man:NetworkManager(8)
|
||||
@ -20,11 +20,12 @@ index e23b3a5..b29b634 100644
|
||||
+Wants=network.target dbus.socket
|
||||
+After=network-pre.target dbus.service dbus.socket
|
||||
Before=network.target @DISTRO_NETWORK_SERVICE@
|
||||
-BindsTo=dbus.service
|
||||
+Requires=dbus.service
|
||||
|
||||
[Service]
|
||||
Type=dbus
|
||||
@@ -12,6 +13,8 @@ ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/
|
||||
@@ -13,6 +13,8 @@ ExecReload=/usr/bin/busctl call org.freedesktop.NetworkManager /org/freedesktop/
|
||||
#ExecReload=/bin/kill -HUP $MAINPID
|
||||
ExecStart=@sbindir@/NetworkManager --no-daemon
|
||||
Restart=on-failure
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user