- Fix conflict with NetworkManager-openconnect (rh #489271)
- Fix possible crash when resynchronizing devices if HAL restarts
This commit is contained in:
parent
13defc0cdc
commit
7e93001cf9
47
NetworkManager-0.7.0.99-fix-hal-resync.patch
Normal file
47
NetworkManager-0.7.0.99-fix-hal-resync.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
commit 21defe6d73853bf19c6ce99d07701d1531e09409
|
||||||
|
Author: Drew Moseley <dmoseley@mvista.com>
|
||||||
|
Date: Fri Mar 6 17:19:17 2009 -0500
|
||||||
|
|
||||||
|
core: fix use-after-free caused by incorrect HAL device resync code
|
||||||
|
|
||||||
|
diff --git a/src/nm-manager.c b/src/nm-manager.c
|
||||||
|
index a6bac55..d0e5564 100644
|
||||||
|
--- a/src/nm-manager.c
|
||||||
|
+++ b/src/nm-manager.c
|
||||||
|
@@ -1426,12 +1426,11 @@ static void
|
||||||
|
sync_devices (NMManager *self)
|
||||||
|
{
|
||||||
|
NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self);
|
||||||
|
- GSList *devices;
|
||||||
|
+ GSList *devices = NULL;
|
||||||
|
GSList *iter;
|
||||||
|
|
||||||
|
- /* Remove devices which are no longer known to HAL */
|
||||||
|
- devices = g_slist_copy (priv->devices);
|
||||||
|
- for (iter = devices; iter; iter = iter->next) {
|
||||||
|
+ /* Keep devices still known to HAL; get rid of ones HAL no longer knows about */
|
||||||
|
+ for (iter = priv->devices; iter; iter = iter->next) {
|
||||||
|
NMDevice *device = NM_DEVICE (iter->data);
|
||||||
|
const char *udi = nm_device_get_udi (device);
|
||||||
|
|
||||||
|
@@ -1440,15 +1439,14 @@ sync_devices (NMManager *self)
|
||||||
|
nm_device_set_managed (device, TRUE, NM_DEVICE_STATE_REASON_NOW_MANAGED);
|
||||||
|
else
|
||||||
|
nm_device_set_managed (device, FALSE, NM_DEVICE_STATE_REASON_NOW_UNMANAGED);
|
||||||
|
- } else {
|
||||||
|
- priv->devices = g_slist_delete_link (priv->devices, iter);
|
||||||
|
+ devices = g_slist_prepend (devices, device);
|
||||||
|
+ } else
|
||||||
|
remove_one_device (self, device);
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
+ g_slist_free (priv->devices);
|
||||||
|
+ priv->devices = devices;
|
||||||
|
|
||||||
|
- g_slist_free (devices);
|
||||||
|
-
|
||||||
|
- /* Get any new ones */
|
||||||
|
+ /* Ask HAL for new devices */
|
||||||
|
nm_hal_manager_query_devices (priv->hal_mgr);
|
||||||
|
}
|
||||||
|
|
@ -18,7 +18,7 @@ Name: NetworkManager
|
|||||||
Summary: Network connection manager and user applications
|
Summary: Network connection manager and user applications
|
||||||
Epoch: 1
|
Epoch: 1
|
||||||
Version: 0.7.0.99
|
Version: 0.7.0.99
|
||||||
Release: 1%{snapshot}%{?dist}
|
Release: 2%{snapshot}%{?dist}
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.gnome.org/projects/NetworkManager/
|
URL: http://www.gnome.org/projects/NetworkManager/
|
||||||
@ -28,6 +28,7 @@ Source1: network-manager-applet-%{version}%{applet_snapshot}.tar.bz2
|
|||||||
Source2: nm-system-settings.conf
|
Source2: nm-system-settings.conf
|
||||||
Patch1: nm-applet-internal-buildfixes.patch
|
Patch1: nm-applet-internal-buildfixes.patch
|
||||||
Patch2: explain-dns1-dns2.patch
|
Patch2: explain-dns1-dns2.patch
|
||||||
|
Patch4: NetworkManager-0.7.0.99-fix-hal-resync.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
PreReq: chkconfig
|
PreReq: chkconfig
|
||||||
@ -48,7 +49,7 @@ Obsoletes: dhcdbd
|
|||||||
Conflicts: NetworkManager-vpnc < 1:0.7.0.99-1
|
Conflicts: NetworkManager-vpnc < 1:0.7.0.99-1
|
||||||
Conflicts: NetworkManager-openvpn < 1:0.7.0.99-1
|
Conflicts: NetworkManager-openvpn < 1:0.7.0.99-1
|
||||||
Conflicts: NetworkManager-pptp < 1:0.7.0.99-1
|
Conflicts: NetworkManager-pptp < 1:0.7.0.99-1
|
||||||
Conflicts: NetworkManager-openconnect < 1:0.7.0.99-1
|
Conflicts: NetworkManager-openconnect < 0:0.7.0.99-1
|
||||||
|
|
||||||
BuildRequires: dbus-devel >= %{dbus_version}
|
BuildRequires: dbus-devel >= %{dbus_version}
|
||||||
BuildRequires: dbus-glib-devel >= %{dbus_glib_version}
|
BuildRequires: dbus-glib-devel >= %{dbus_glib_version}
|
||||||
@ -145,6 +146,7 @@ NetworkManager functionality from applications that use glib.
|
|||||||
tar -xjf %{SOURCE1}
|
tar -xjf %{SOURCE1}
|
||||||
%patch1 -p1 -b .buildfix
|
%patch1 -p1 -b .buildfix
|
||||||
%patch2 -p1 -b .explain-dns1-dns2
|
%patch2 -p1 -b .explain-dns1-dns2
|
||||||
|
%patch4 -p1 -b .fix-hal-resync
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
|
||||||
@ -325,6 +327,10 @@ fi
|
|||||||
%{_datadir}/gtk-doc/html/libnm-util/*
|
%{_datadir}/gtk-doc/html/libnm-util/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 9 2009 Dan Williams <dcbw@redhat.com> - 1:0.7.0.99-2
|
||||||
|
- Fix conflict with NetworkManager-openconnect (rh #489271)
|
||||||
|
- Fix possible crash when resynchronizing devices if HAL restarts
|
||||||
|
|
||||||
* Wed Mar 4 2009 Dan Williams <dcbw@redhat.com> - 1:0.7.0.99-1
|
* Wed Mar 4 2009 Dan Williams <dcbw@redhat.com> - 1:0.7.0.99-1
|
||||||
- nm: make default wired "Auto ethX" connection modifiable if an enabled system settings
|
- nm: make default wired "Auto ethX" connection modifiable if an enabled system settings
|
||||||
plugin supports modifying connections (rh #485555)
|
plugin supports modifying connections (rh #485555)
|
||||||
|
Loading…
Reference in New Issue
Block a user