[NetworkManager/f20] Fix two crashes
Jirka Klimes
jklimes at fedoraproject.org
Tue Apr 15 11:33:00 UTC 2014
commit 3f6ed554c5c8413384e40de48e9b60659c05e373
Author: Jiří Klimeš <jklimes at redhat.com>
Date: Tue Apr 15 12:09:00 2014 +0200
Fix two crashes
policy: check device state before changing it for secondaries (rh #1055099)
team: fix crash in teamdctl (rh #1076469)
0060-rh1055099-secondary-connections-state.patch | 52 ++++++++++++++++++++++
0061-rh1076469-fix-crash-teamdctl-cli-fini.patch | 33 ++++++++++++++
NetworkManager.spec | 10 ++++-
3 files changed, 94 insertions(+), 1 deletions(-)
---
diff --git a/0060-rh1055099-secondary-connections-state.patch b/0060-rh1055099-secondary-connections-state.patch
new file mode 100644
index 0000000..f8b60c1
--- /dev/null
+++ b/0060-rh1055099-secondary-connections-state.patch
@@ -0,0 +1,52 @@
+From e7570b398c6a658732cdc5cc0566beaf2f23e6fe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ji=C5=99=C3=AD=20Klime=C5=A1?= <jklimes at redhat.com>
+Date: Tue, 15 Apr 2014 11:51:56 +0200
+Subject: [PATCH] policy: check device state before changing it for
+ secondaries (rh #1055099)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We have to check the previous base device state in process_secondaries() when
+making a state change. The device might got disconnected in the meantime and
+thus the transition from DISCONNECTED to ACTIVATED or FAILED would have been
+incorrect.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1055099
+https://bugzilla.redhat.com/show_bug.cgi?id=1055101
+
+Signed-off-by: Jiří Klimeš <jklimes at redhat.com>
+---
+ src/nm-policy.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/nm-policy.c b/src/nm-policy.c
+index f454d90..fa31d6c 100644
+--- a/src/nm-policy.c
++++ b/src/nm-policy.c
+@@ -1087,7 +1087,8 @@ process_secondaries (NMPolicy *policy,
+ /* None secondary UUID remained -> remove the secondary data item */
+ priv->pending_secondaries = g_slist_remove (priv->pending_secondaries, secondary_data);
+ pending_secondary_data_free (secondary_data);
+- nm_device_state_changed (item_device, NM_DEVICE_STATE_ACTIVATED, NM_DEVICE_STATE_REASON_NONE);
++ if (nm_device_get_state (item_device) == NM_DEVICE_STATE_SECONDARIES)
++ nm_device_state_changed (item_device, NM_DEVICE_STATE_ACTIVATED, NM_DEVICE_STATE_REASON_NONE);
+ return;
+ }
+ } else {
+@@ -1098,8 +1099,10 @@ process_secondaries (NMPolicy *policy,
+ /* Secondary connection failed -> do not watch other connections */
+ priv->pending_secondaries = g_slist_remove (priv->pending_secondaries, secondary_data);
+ pending_secondary_data_free (secondary_data);
+- nm_device_state_changed (item_device, NM_DEVICE_STATE_FAILED,
+- NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED);
++ if ( nm_device_get_state (item_device) == NM_DEVICE_STATE_SECONDARIES
++ || nm_device_get_state (item_device) == NM_DEVICE_STATE_ACTIVATED)
++ nm_device_state_changed (item_device, NM_DEVICE_STATE_FAILED,
++ NM_DEVICE_STATE_REASON_SECONDARY_CONNECTION_FAILED);
+ return;
+ }
+ }
+--
+1.7.11.7
+
diff --git a/0061-rh1076469-fix-crash-teamdctl-cli-fini.patch b/0061-rh1076469-fix-crash-teamdctl-cli-fini.patch
new file mode 100644
index 0000000..fbb127e
--- /dev/null
+++ b/0061-rh1076469-fix-crash-teamdctl-cli-fini.patch
@@ -0,0 +1,33 @@
+From 6b6265ebebd7342a0d414bd1370e7af0e472d522 Mon Sep 17 00:00:00 2001
+From: Dan Williams <dcbw at redhat.com>
+Date: Fri, 8 Nov 2013 15:34:55 -0600
+Subject: [PATCH] team: fix possible crash by ensuring teamd context is
+ cleared
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+teamd_cleanup() might get called multiple times, and since the rest
+of the function is safe against multi-calls, make priv->tdc safe
+against being called again too.
+
+Signed-off-by: Jiří Klimeš <jklimes at redhat.com>
+---
+ src/devices/nm-device-team.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/devices/nm-device-team.c b/src/devices/nm-device-team.c
+index 734cf4d..1fe7caf 100644
+--- a/src/devices/nm-device-team.c
++++ b/src/devices/nm-device-team.c
+@@ -270,6 +270,7 @@ teamd_cleanup (NMDevice *dev, gboolean device_state_failed)
+ if (priv->tdc) {
+ teamdctl_disconnect (priv->tdc);
+ teamdctl_free (priv->tdc);
++ priv->tdc = NULL;
+ }
+ #endif
+
+--
+1.7.11.7
+
diff --git a/NetworkManager.spec b/NetworkManager.spec
index b9ce2d7..4129be0 100644
--- a/NetworkManager.spec
+++ b/NetworkManager.spec
@@ -42,7 +42,7 @@ Name: NetworkManager
Summary: Network connection manager and user applications
Epoch: 1
Version: 0.9.9.0
-Release: 36%{snapshot}%{?dist}
+Release: 37%{snapshot}%{?dist}
Group: System Environment/Base
License: GPLv2+
URL: http://www.gnome.org/projects/NetworkManager/
@@ -110,6 +110,8 @@ Patch56: 0056-rh1084556-pending-action-queued-state-lock.patch
Patch57: 0057-emit-property-changed-for-active-conn.patch
Patch58: 0058-rh1086132-NM-crash-fix-wifi-ap-utils.patch
Patch59: 0059-rh1056133-fix-modem-enable-crash.patch
+Patch60: 0060-rh1055099-secondary-connections-state.patch
+Patch61: 0061-rh1076469-fix-crash-teamdctl-cli-fini.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -334,6 +336,8 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
%patch57 -p1 -b .0057-emit-property-changed-for-active-conn.orig
%patch58 -p1 -b .0058-rh1086132-NM-crash-fix-wifi-ap-utils.orig
%patch59 -p1 -b .0059-rh1056133-fix-modem-enable-crash.orig
+%patch60 -p1 -b .0060-rh1055099-secondary-connections-state.orig
+%patch61 -p1 -b .0061-rh1076469-fix-crash-teamdctl-cli-fini.orig
%build
@@ -558,6 +562,10 @@ fi
%endif
%changelog
+* Tue Apr 15 2014 Jiří Klimeš <jklimes at redhat.com> - 0.9.9.0-37.git20131003
+- policy: check device state before changing it for secondaries (rh #1055099)
+- team: fix crash in teamdctl (rh #1076469)
+
* Mon Apr 14 2014 Jiří Klimeš <jklimes at redhat.com> - 0.9.9.0-36.git20131003
- mobile: fix crash (only move to NEED_AUTH during activation (rh #1056133) (rh #1058308)
More information about the scm-commits
mailing list