[gnome-control-center] user-accounts: Fix memory leak in create_user_done()
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] user-accounts: Fix memory leak in create_user_done()
- Date: Tue, 12 Jun 2012 10:00:13 +0000 (UTC)
commit 61eadc3fe372a27bd7d464d7ead55443fbff1d90
Author: Stef Walter <stefw gnome org>
Date: Tue Jun 12 10:56:09 2012 +0200
user-accounts: Fix memory leak in create_user_done()
g_dbus_error_get_remote_error() returns an allocated string
https://bugzilla.gnome.org/show_bug.cgi?id=677930
panels/user-accounts/um-user-manager.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
---
diff --git a/panels/user-accounts/um-user-manager.c b/panels/user-accounts/um-user-manager.c
index d59b263..432fe8d 100644
--- a/panels/user-accounts/um-user-manager.c
+++ b/panels/user-accounts/um-user-manager.c
@@ -436,6 +436,7 @@ create_user_done (GObject *proxy,
GSimpleAsyncResult *res;
GVariant *result;
GError *error = NULL;
+ gchar *remote;
res = g_simple_async_result_new (G_OBJECT (data->manager),
data->callback,
@@ -448,15 +449,16 @@ create_user_done (GObject *proxy,
* calling dbus_g_error_has_name on the error returned in
* um_user_manager_create_user_finish doesn't work.
*/
+ remote = g_dbus_error_get_remote_error (error);
if (g_dbus_error_is_remote_error (error) &&
- strcmp (g_dbus_error_get_remote_error(error), "org.freedesktop.Accounts.Error.PermissionDenied") == 0) {
+ strcmp (remote, "org.freedesktop.Accounts.Error.PermissionDenied") == 0) {
g_simple_async_result_set_error (res,
UM_USER_MANAGER_ERROR,
UM_USER_MANAGER_ERROR_PERMISSION_DENIED,
"Not authorized");
}
if (g_dbus_error_is_remote_error (error) &&
- strcmp (g_dbus_error_get_remote_error(error), "org.freedesktop.Accounts.Error.UserExists") == 0) {
+ strcmp (remote, "org.freedesktop.Accounts.Error.UserExists") == 0) {
g_simple_async_result_set_error (res,
UM_USER_MANAGER_ERROR,
UM_USER_MANAGER_ERROR_USER_EXISTS,
@@ -467,6 +469,7 @@ create_user_done (GObject *proxy,
g_simple_async_result_set_from_error (res, error);
}
g_error_free (error);
+ g_free (remote);
}
else {
if (g_variant_is_of_type (result, G_VARIANT_TYPE ("(o)"))) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]