summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2016-08-26 12:06:02 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2016-08-26 12:06:02 +0200
commit3fa5d1c07017206d626188a235eeafc5bacc4768 (patch)
tree0bf9d0a0d4797bc9bfed59b6db9dac5258032d10
parent4cfec7f59a19fd6a3a4b3b615ef960920050ea76 (diff)
downloadNetworkManager-bg/libnm-activation-stuck-rh1367752.tar.gz
fixup! libnm: make waiting objects fail when an object initialization failsbg/libnm-activation-stuck-rh1367752
-rw-r--r--libnm/nm-object.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/libnm/nm-object.c b/libnm/nm-object.c
index 5acb6b4b54..337ca69862 100644
--- a/libnm/nm-object.c
+++ b/libnm/nm-object.c
@@ -489,6 +489,7 @@ static void
create_async_inited (GObject *object, GAsyncResult *result, gpointer user_data)
{
NMObjectPrivate *priv = NM_OBJECT_GET_PRIVATE (object);
+ NMObjectPrivate *odata_priv;
NMObjectTypeAsyncData *async_data = user_data;
GError *error = NULL;
ObjectCreatedData *odata;
@@ -501,9 +502,12 @@ create_async_inited (GObject *object, GAsyncResult *result, gpointer user_data)
while (priv->waiters) {
odata = priv->waiters->data;
+ odata_priv = NM_OBJECT_GET_PRIVATE (odata->self);
+
priv->waiters = g_slist_remove (priv->waiters, odata);
- NM_OBJECT_GET_PRIVATE (odata->self)->reload_error = g_error_copy (error);
- NM_OBJECT_GET_PRIVATE (odata->self)->reload_remaining--;
+ if (!odata_priv->reload_error)
+ odata_priv->reload_error = g_error_copy (error);
+ odata_priv->reload_remaining--;
reload_complete (odata->self, FALSE);
}