[gnome-bluetooth] lib: fix usage of GVariant



commit bdad164e57442fc2fae805fc322cc16331db33a2
Author: Daniele Forsi <dforsi src gnome org>
Date:   Tue Nov 22 11:27:00 2011 +0100

    lib: fix usage of GVariant
    
    If adapter_call_get_properties_sync () fails then the variant pointer
    is left uninitialized. Also unref it only if it is not NULL.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=664550

 lib/bluetooth-client.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/lib/bluetooth-client.c b/lib/bluetooth-client.c
index dc98fb5..4ff6aeb 100644
--- a/lib/bluetooth-client.c
+++ b/lib/bluetooth-client.c
@@ -765,9 +765,7 @@ adapter_added (Manager         *manager,
 						  NULL,
 						  NULL);
 
-	adapter_call_get_properties_sync (adapter, &variant, NULL, NULL);
-
-	if (variant != NULL) {
+	if (adapter_call_get_properties_sync (adapter, &variant, NULL, NULL) == TRUE) {
 		GVariant *v;
 
 		v = g_variant_lookup_value (variant, "Address", G_VARIANT_TYPE_STRING);
@@ -787,6 +785,8 @@ adapter_added (Manager         *manager,
 
 		v = g_variant_lookup_value (variant, "Discoverable", G_VARIANT_TYPE_BOOLEAN);
 		discoverable = v ? g_variant_get_boolean (v) : FALSE;
+
+		g_variant_unref (variant);
 	} else {
 		address = NULL;
 		name = NULL;
@@ -816,7 +816,6 @@ adapter_added (Manager         *manager,
 		}
 		g_free (devices);
 	}
-	g_variant_unref (variant);
 
 	g_object_unref (adapter);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]