vpn-connection: do not leak the connection if there's no timeout
authorLubomir Rintel <lkundrak@v3.sk>
Fri, 18 Mar 2016 16:41:00 +0000 (17:41 +0100)
committerLubomir Rintel <lkundrak@v3.sk>
Fri, 18 Mar 2016 17:04:55 +0000 (18:04 +0100)
src/vpn-manager/nm-vpn-connection.c

index 0c0a423..cbc7c69 100644 (file)
@@ -1945,7 +1945,7 @@ nm_vpn_service_daemon_exec (NMVpnConnection *self, GError **error)
 
        if (success) {
                _LOGI ("Started the VPN service, PID %ld", (long int) pid);
-               priv->start_timeout = g_timeout_add_seconds (5, _daemon_exec_timeout, g_object_ref (self));
+               priv->start_timeout = g_timeout_add_seconds (5, _daemon_exec_timeout, self);
        } else {
                g_set_error (error,
                             NM_MANAGER_ERROR, NM_MANAGER_ERROR_FAILED,
@@ -2401,6 +2401,8 @@ dispose (GObject *object)
        NMVpnConnection *self = NM_VPN_CONNECTION (object);
        NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self);
 
+       nm_clear_g_source (&priv->start_timeout);
+
        g_clear_pointer (&priv->connect_hash, g_variant_unref);
 
        nm_clear_g_source (&priv->connect_timeout);