From 072358dad08b4b2206f15e6b0ebf9f096e81c05e Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Thu, 16 Jun 2016 08:47:56 +0200 Subject: [PATCH] team: check return value of g_dbus_connection_call_sync() The call can fail; in such case assume that an existing teamd died and our instance will be able to continue. https://bugzilla.redhat.com/show_bug.cgi?id=1347015 --- src/devices/team/nm-device-team.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/devices/team/nm-device-team.c b/src/devices/team/nm-device-team.c index fd7189962..0199cc36c 100644 --- a/src/devices/team/nm-device-team.c +++ b/src/devices/team/nm-device-team.c @@ -344,10 +344,18 @@ teamd_dbus_appeared (GDBusConnection *connection, 2000, NULL, NULL); - g_variant_get (ret, "(u)", &pid); - if (pid != priv->teamd_pid) - teamd_cleanup (device, FALSE); + if (ret) { + g_variant_get (ret, "(u)", &pid); + if (pid != priv->teamd_pid) + teamd_cleanup (device, FALSE); + } else { + _LOGW (LOGD_TEAM, "failed to determine D-Bus name owner"); + /* If we can't determine the bus name owner, don't kill our + * teamd instance. Hopefully another existing teamd just died and + * our instance will be able to grab the bus name. + */ + } } /* Grab a teamd control handle even if we aren't going to use it