From 7c4f6915b0e5479c90bc666400f3674cff024acd Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 30 Sep 2015 17:25:49 +0200 Subject: [PATCH 1/2] tui: fix crash during activation when failed to create secret-agent NetworkManager only allows one 'client:user-id' to register as secret agent. Thus, when starting nmtui in two terminals, creating the secret agent can fail. This can lead to a crash. https://bugzilla.gnome.org/show_bug.cgi?id=755883 (cherry picked from commit b861900d45da588f4239be418c3e1f62505cbde1) (cherry picked from commit 269a4483be917fcc7ba66bcf061f75e76df0c6c7) --- clients/tui/nmtui-connect.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/clients/tui/nmtui-connect.c b/clients/tui/nmtui-connect.c index 438915d..5eabbc8 100644 --- a/clients/tui/nmtui-connect.c +++ b/clients/tui/nmtui-connect.c @@ -132,7 +132,7 @@ activate_connection (NMConnection *connection, NMObject *specific_object) { NmtNewtForm *form; - NMSecretAgentOld *agent; + gs_unref_object NMSecretAgentOld *agent = NULL; NmtNewtWidget *label; NmtSyncOp op; const char *specific_object_path; @@ -188,7 +188,7 @@ activate_connection (NMConnection *connection, goto done; } - if (!connection) { + if (agent && !connection) { connection = NM_CONNECTION (nm_active_connection_get_connection (ac)); if (connection) { nm_secret_agent_simple_enable (NM_SECRET_AGENT_SIMPLE (agent), @@ -220,8 +220,8 @@ activate_connection (NMConnection *connection, nmt_newt_form_quit (form); g_object_unref (form); - nm_secret_agent_old_unregister (agent, NULL, NULL); - g_object_unref (agent); + if (agent) + nm_secret_agent_old_unregister (agent, NULL, NULL); } static void -- 2.4.3 From 74a8e8c9e61f663bed05f004d5e9530c1ea1dbf5 Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Wed, 30 Sep 2015 19:37:10 +0200 Subject: [PATCH 2/2] tui: add a missing include to fix build Fixes: 269a4483be917fcc7ba66bcf061f75e76df0c6c7 (cherry picked from commit e88161172e2d675783027a839b50488cc75fbf6f) --- clients/tui/nmtui-connect.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/clients/tui/nmtui-connect.c b/clients/tui/nmtui-connect.c index 5eabbc8..cacb0b4 100644 --- a/clients/tui/nmtui-connect.c +++ b/clients/tui/nmtui-connect.c @@ -30,6 +30,8 @@ #include +#include "gsystem-local-alloc.h" + #include "nmt-newt.h" #include "nmtui.h" -- 2.4.3