From 7c4f6915b0e5479c90bc666400f3674cff024acd Mon Sep 17 00:00:00 2001
From: Thomas Haller <thaller@redhat.com>
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 <lkundrak@v3.sk>
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 <glib/gi18n-lib.h>
+#include "gsystem-local-alloc.h"
+
#include "nmt-newt.h"
#include "nmtui.h"
--
2.4.3