From 76e97ed5506da5b88111a9b2a3cdcaa4f6d8c43d Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Thu, 7 Mar 2013 18:13:45 +0200 Subject: [PATCH] vpn: Make sure vpn connection really exists before removing it --- plugins/vpn.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/vpn.c b/plugins/vpn.c index 04318a9..038a833 100644 --- a/plugins/vpn.c +++ b/plugins/vpn.c @@ -1508,6 +1508,7 @@ static gboolean connection_removed(DBusConnection *conn, DBusMessage *message, { const char *path; const char *signature = DBUS_TYPE_OBJECT_PATH_AS_STRING; + struct connection_data *data; if (dbus_message_has_signature(message, signature) == FALSE) { connman_error("vpn removed signature \"%s\" does not match " @@ -1518,7 +1519,11 @@ static gboolean connection_removed(DBusConnection *conn, DBusMessage *message, dbus_message_get_args(message, NULL, DBUS_TYPE_OBJECT_PATH, &path, DBUS_TYPE_INVALID); - remove_connection(conn, path); + + data = g_hash_table_lookup(vpn_connections, get_ident(path)); + if (data != NULL) + remove_connection(conn, path); + return TRUE; } -- 2.7.4