diff --git a/src/nm-manager.c b/src/nm-manager.c index 6e99b3040d..9c54598c94 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -872,7 +872,6 @@ static void pending_activation_check_authorized (PendingActivation *pending, NMDBusManager *dbus_mgr) { - char *error_desc = NULL; gulong sender_uid = G_MAXULONG; GError *error; const char *wifi_permission = NULL; @@ -882,16 +881,15 @@ pending_activation_check_authorized (PendingActivation *pending, g_return_if_fail (pending != NULL); g_return_if_fail (dbus_mgr != NULL); - if (!nm_auth_get_caller_uid (pending->context, - dbus_mgr, - &sender_uid, - &error_desc)) { + if (!nm_dbus_manager_get_caller_info (dbus_mgr, + pending->context, + NULL, + &sender_uid)) { error = g_error_new_literal (NM_MANAGER_ERROR, NM_MANAGER_ERROR_PERMISSION_DENIED, - error_desc); + "Unable to determine UID of request."); pending->callback (pending, error); g_error_free (error); - g_free (error_desc); return; } @@ -1768,17 +1766,18 @@ device_auth_request_cb (NMDevice *device, NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); GError *error = NULL; gulong sender_uid = G_MAXULONG; - char *error_desc = NULL; NMAuthChain *chain; /* Get the caller's UID for the root check */ - if (!nm_auth_get_caller_uid (context, priv->dbus_mgr, &sender_uid, &error_desc)) { + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, + context, + NULL, + &sender_uid)) { error = g_error_new_literal (NM_MANAGER_ERROR, NM_MANAGER_ERROR_PERMISSION_DENIED, - error_desc); + "Unable to determine request UID."); callback (device, context, error, user_data); g_error_free (error); - g_free (error_desc); return; } @@ -2966,7 +2965,7 @@ pending_activate (NMManager *self, PendingActivation *pending) NMSettingsConnection *connection; NMActiveConnection *ac = NULL; GError *error = NULL; - char *sender; + char *sender = NULL; /* Ok, we're authorized */ @@ -2978,7 +2977,16 @@ pending_activate (NMManager *self, PendingActivation *pending) goto out; } - sender = dbus_g_method_get_sender (pending->context); + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, + pending->context, + &sender, + NULL)) { + error = g_error_new_literal (NM_MANAGER_ERROR, + NM_MANAGER_ERROR_PERMISSION_DENIED, + "D-Bus sendder could not be determined."); + goto out; + } + g_assert (sender); ac = nm_manager_activate_connection (self, NM_CONNECTION (connection), @@ -3201,7 +3209,6 @@ impl_manager_deactivate_connection (NMManager *self, GSList *iter; NMAuthChain *chain; gulong sender_uid = G_MAXULONG; - char *error_desc = NULL; /* Find the connection by its object path */ for (iter = priv->active_connections; iter; iter = g_slist_next (iter)) { @@ -3225,16 +3232,15 @@ impl_manager_deactivate_connection (NMManager *self, /* Need to check the caller's permissions and stuff before we can * deactivate the connection. */ - if (!nm_auth_get_caller_uid (context, - priv->dbus_mgr, - &sender_uid, - &error_desc)) { + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, + context, + NULL, + &sender_uid)) { error = g_error_new_literal (NM_MANAGER_ERROR, NM_MANAGER_ERROR_PERMISSION_DENIED, - error_desc); + "Unable to determine request UID."); dbus_g_method_return_error (context, error); g_error_free (error); - g_free (error_desc); return; } @@ -3520,7 +3526,6 @@ impl_manager_enable (NMManager *self, NMAuthChain *chain; GError *error = NULL; gulong sender_uid = G_MAXULONG; - char *error_desc = NULL; g_return_if_fail (NM_IS_MANAGER (self)); @@ -3535,13 +3540,15 @@ impl_manager_enable (NMManager *self, return; } - if (!nm_auth_get_caller_uid (context, priv->dbus_mgr, &sender_uid, &error_desc)) { + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, + context, + NULL, + &sender_uid)) { error = g_error_new_literal (NM_MANAGER_ERROR, NM_MANAGER_ERROR_PERMISSION_DENIED, - error_desc); + "Unable to determine request UID."); dbus_g_method_return_error (context, error); g_error_free (error); - g_free (error_desc); return; } diff --git a/src/settings/nm-agent-manager.c b/src/settings/nm-agent-manager.c index 36086a75d8..57c779ddae 100644 --- a/src/settings/nm-agent-manager.c +++ b/src/settings/nm-agent-manager.c @@ -246,20 +246,19 @@ impl_agent_manager_register (NMAgentManager *self, DBusGMethodInvocation *context) { NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self); - char *error_desc = NULL, *sender = NULL; + char *sender = NULL; gulong sender_uid = G_MAXULONG; GError *error = NULL, *local = NULL; NMSecretAgent *agent; NMAuthChain *chain; - if (!nm_auth_get_caller_uid (context, - priv->dbus_mgr, - &sender_uid, - &error_desc)) { + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, + context, + &sender, + &sender_uid)) { error = g_error_new_literal (NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN, - error_desc); - g_free (error_desc); + "Unable to determine request sender and UID."); goto done; } @@ -273,14 +272,6 @@ impl_agent_manager_register (NMAgentManager *self, goto done; } - sender = dbus_g_method_get_sender (context); - if (!sender) { - error = g_error_new_literal (NM_AGENT_MANAGER_ERROR, - NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN, - "Failed to get D-Bus request sender"); - goto done; - } - /* Validate the identifier */ if (!validate_identifier (identifier, &error)) goto done; @@ -317,14 +308,17 @@ static void impl_agent_manager_unregister (NMAgentManager *self, DBusGMethodInvocation *context) { + NMAgentManagerPrivate *priv = NM_AGENT_MANAGER_GET_PRIVATE (self); GError *error = NULL; char *sender = NULL; - sender = dbus_g_method_get_sender (context); - if (!sender) { + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, + context, + &sender, + NULL)) { error = g_error_new_literal (NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_SENDER_UNKNOWN, - "Failed to get D-Bus request sender"); + "Unable to determine request sender."); goto done; } diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c index 1e6d94a7f9..9f1a4edb63 100644 --- a/src/settings/nm-settings-connection.c +++ b/src/settings/nm-settings-connection.c @@ -937,12 +937,11 @@ check_user_in_acl (NMConnection *connection, g_return_val_if_fail (session_monitor != NULL, FALSE); /* Get the caller's UID */ - if (!nm_auth_get_caller_uid (context, dbus_mgr, &sender_uid, &error_desc)) { + if (!nm_dbus_manager_get_caller_info (dbus_mgr, context, NULL, &sender_uid)) { g_set_error_literal (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED, - error_desc); - g_free (error_desc); + "Unable to determine UID of request."); return FALSE; } diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 482eadd24d..5ec9cea721 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -1135,12 +1135,10 @@ nm_settings_add_connection (NMSettings *self, } /* Get the caller's UID */ - if (!nm_auth_get_caller_uid (context, priv->dbus_mgr, &caller_uid, &error_desc)) { - error = g_error_new (NM_SETTINGS_ERROR, - NM_SETTINGS_ERROR_NOT_PRIVILEGED, - "Unable to determine UID of request: %s.", - error_desc ? error_desc : "(unknown)"); - g_free (error_desc); + if (!nm_dbus_manager_get_caller_info (priv->dbus_mgr, context, NULL, &caller_uid)) { + error = g_error_new_literal (NM_SETTINGS_ERROR, + NM_SETTINGS_ERROR_PERMISSION_DENIED, + "Unable to determine request UID."); callback (self, NULL, error, context, user_data); g_error_free (error); return;