From 7bda57972431954f445a30a3fc9dabe2d735a696 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Fri, 13 Feb 2015 07:42:28 -0800 Subject: [PATCH 1/5] signon: fix memory leak Use a smart pointer to take over ownership of the GVariant created for us. Fix should be squashed into commit introducing the code before merging into master. --- src/backends/signon/signon-accounts.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backends/signon/signon-accounts.cpp b/src/backends/signon/signon-accounts.cpp index 99fbdca..e41d3f8 100644 --- a/src/backends/signon/signon-accounts.cpp +++ b/src/backends/signon/signon-accounts.cpp @@ -101,7 +101,7 @@ public: g_variant_builder_add(&builder, "sv", "UiPolicy", g_variant_new_uint32(SIGNON_POLICY_REQUEST_PASSWORD)); } - GVariant *extraOptions = g_variant_builder_end(&builder); + GVariantCXX extraOptions(g_variant_take_ref(g_variant_builder_end(&builder)), TRANSFER_REF); GVariantCXX resultData = authenticate(extraOptions); GVariantCXX usernameVar(g_variant_lookup_value(resultData, "UserName", G_VARIANT_TYPE_STRING), TRANSFER_REF); @@ -137,7 +137,7 @@ public: g_variant_builder_add(&builder, "sv", "ForceTokenRefresh", g_variant_new_boolean(true)); } - GVariant *extraOptions = g_variant_builder_end(&builder); + GVariantCXX extraOptions(g_variant_take_ref(g_variant_builder_end(&builder)), TRANSFER_REF); GVariantCXX resultData = authenticate(extraOptions); GVariantCXX tokenVar(g_variant_lookup_value(resultData, "AccessToken", G_VARIANT_TYPE_STRING), TRANSFER_REF); -- 1.8.4.5