diff options
| author | Michael Biebl <biebl@debian.org> | 2019-09-06 09:25:17 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2019-09-06 09:25:17 +0200 |
| commit | 555dfa331e295a3a687a7cc6870e1349ffed8f26 (patch) | |
| tree | aebc4e1ffa38b05780f0c1fe39bf78ca63c979c6 /src/settings/nm-settings.c | |
| parent | 5c79b900b59a5ad162ecc836e424468207ff031e (diff) | |
New upstream version 1.20.2 upstream/1.20.2
Diffstat (limited to 'src/settings/nm-settings.c')
| -rw-r--r-- | src/settings/nm-settings.c | 48 |
1 files changed, 31 insertions, 17 deletions
diff --git a/src/settings/nm-settings.c b/src/settings/nm-settings.c index 42a7bca0..4bdcb522 100644 --- a/src/settings/nm-settings.c +++ b/src/settings/nm-settings.c @@ -2421,7 +2421,7 @@ pk_add_cb (NMAuthChain *chain, if (result != NM_AUTH_CALL_RESULT_YES) { error = g_error_new_literal (NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED, - "Insufficient privileges."); + NM_UTILS_ERROR_MSG_INSUFF_PRIV); } else { /* Authorized */ connection = nm_auth_chain_get_data (chain, "connection"); @@ -2521,7 +2521,7 @@ nm_settings_add_connection_dbus (NMSettings *self, if (!chain) { error = g_error_new_literal (NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED, - "Unable to authenticate the request."); + NM_UTILS_ERROR_MSG_REQ_AUTH_FAILED); goto done; } @@ -2605,7 +2605,7 @@ settings_add_connection_helper (NMSettings *self, g_dbus_method_invocation_return_error_literal (context, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED, - "Unable to determine UID of request."); + NM_UTILS_ERROR_MSG_REQ_UID_UKNOWN); return; } @@ -2946,7 +2946,7 @@ impl_settings_get_connection_by_uuid (NMDBusObject *obj, if (!subject) { error = g_error_new_literal (NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED, - "Unable to determine UID of request."); + NM_UTILS_ERROR_MSG_REQ_UID_UKNOWN); goto error; } @@ -3288,15 +3288,14 @@ pk_hostname_cb (NMAuthChain *chain, c_list_unlink (nm_auth_chain_parent_lst_list (chain)); result = nm_auth_chain_get_result (chain, NM_AUTH_PERMISSION_SETTINGS_MODIFY_HOSTNAME); + hostname = nm_auth_chain_get_data (chain, "hostname"); /* If our NMSettingsConnection is already gone, do nothing */ if (result != NM_AUTH_CALL_RESULT_YES) { error = g_error_new_literal (NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_PERMISSION_DENIED, - "Insufficient privileges."); + NM_UTILS_ERROR_MSG_INSUFF_PRIV); } else { - hostname = nm_auth_chain_get_data (chain, "hostname"); - if (!nm_hostname_manager_write_hostname (priv->hostname_manager, hostname)) { error = g_error_new_literal (NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_FAILED, @@ -3304,6 +3303,12 @@ pk_hostname_cb (NMAuthChain *chain, } } + nm_audit_log_control_op (NM_AUDIT_OP_HOSTNAME_SAVE, + hostname, + !error, + nm_auth_chain_get_subject (chain), + error ? error->message : NULL); + if (error) g_dbus_method_invocation_take_error (context, error); else @@ -3323,30 +3328,39 @@ impl_settings_save_hostname (NMDBusObject *obj, NMSettingsPrivate *priv = NM_SETTINGS_GET_PRIVATE (self); NMAuthChain *chain; const char *hostname; + const char *error_reason; + int error_code; g_variant_get (parameters, "(&s)", &hostname); /* Minimal validation of the hostname */ if (!nm_hostname_manager_validate_hostname (hostname)) { - g_dbus_method_invocation_return_error_literal (invocation, - NM_SETTINGS_ERROR, - NM_SETTINGS_ERROR_INVALID_HOSTNAME, - "The hostname was too long or contained invalid characters."); - return; + error_code = NM_SETTINGS_ERROR_INVALID_HOSTNAME; + error_reason = "The hostname was too long or contained invalid characters"; + goto err; } chain = nm_auth_chain_new_context (invocation, pk_hostname_cb, self); if (!chain) { - g_dbus_method_invocation_return_error_literal (invocation, - NM_SETTINGS_ERROR, - NM_SETTINGS_ERROR_PERMISSION_DENIED, - "Unable to authenticate the request."); - return; + error_code = NM_SETTINGS_ERROR_PERMISSION_DENIED; + error_reason = NM_UTILS_ERROR_MSG_REQ_AUTH_FAILED; + goto err; } c_list_link_tail (&priv->auth_lst_head, nm_auth_chain_parent_lst_list (chain)); nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_SETTINGS_MODIFY_HOSTNAME, TRUE); nm_auth_chain_set_data (chain, "hostname", g_strdup (hostname), g_free); + return; +err: + nm_audit_log_control_op (NM_AUDIT_OP_HOSTNAME_SAVE, + hostname, + FALSE, + invocation, + error_reason); + g_dbus_method_invocation_return_error_literal (invocation, + NM_SETTINGS_ERROR, + error_code, + error_reason); } /*****************************************************************************/ |