NetworkManager/libnm-core
Thomas Haller c429951c46 libnm: track invalid user data separately and reject during verify()
nm_setting_user_set_data() rejects invalid keys and values, and
can fail. This API is correct never to fail, like the get_data()
only returns valid user-data.

However, the g_object_set() API allows to set the hash directly but
it cannot report errors for invalid values. This API is used to
initialize the value from D-Bus or keyfile, hence it is wrong
to emit g_critial() assertions for untrusted data.
It would also be wrong to silently drop all invalid date, because
then the user cannot get an error message to understand what happend.

The correct but cumbersome solution is to remember the invalid values
separately, so that verify() can report the setting as invalid.

(cherry picked from commit 1dbbf6fb03)
2017-05-06 14:53:05 +02:00
..
tests keyfile: fix handling unsupported characters in keys 2017-05-06 14:52:29 +02:00
crypto.c libnm: refactor loop in crypto_md5_hash() 2016-11-09 12:07:33 +01:00
crypto.h all: cleanup includes in header files 2016-08-17 19:09:50 +02:00
crypto_gnutls.c crypto: don't try to decrypt PKCS#8 key if no password is supplied 2016-09-23 18:05:54 +02:00
crypto_nss.c all: use "unsigned" instead of "unsigned int" 2017-03-14 11:26:29 +01:00
nm-connection-private.h libnm-core: make nm_setting_verify() take an NMConnection 2014-10-28 17:17:17 -04:00
nm-connection.c libnm-core: remove a redundant docstring 2017-03-05 21:04:06 +01:00
nm-connection.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-core-internal.h libnm-core: normalize invalid bridge|team slave-port settings 2017-03-02 12:14:29 +01:00
nm-core-types-internal.h libnm: internally expose NMVlanQosMapping struct in "nm-core-internal.h" 2015-11-02 13:57:02 +01:00
nm-core-types.h libnm: add NMSettingUser 2017-03-28 14:58:21 +02:00
nm-dbus-interface.h all: detect SR-IOV device support 2017-04-19 08:49:37 +02:00
nm-dbus-utils.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-errors.c all: use NM_CACHED_QUARK_FCN() instead of G_DEFINE_QUARK() 2017-02-10 14:33:52 +01:00
nm-errors.h ppp: split ppp manager into a plugin 2016-12-06 11:08:11 +01:00
nm-keyfile-internal.h shared: move NMSetting8021xSchemeVtable to "shared/nm-setting-metadata.h" 2017-02-17 19:52:13 +01:00
nm-keyfile-reader.c keyfile: fix handling unsupported characters in keys 2017-05-06 14:52:29 +02:00
nm-keyfile-utils.c keyfile: fix handling unsupported characters in keys 2017-05-06 14:52:29 +02:00
nm-keyfile-utils.h keyfile: fix handling unsupported characters in keys 2017-05-06 14:52:29 +02:00
nm-keyfile-writer.c keyfile: fix handling unsupported characters in keys 2017-05-06 14:52:29 +02:00
nm-property-compare.c build: don't link against libm.so 2017-03-23 19:06:02 +01:00
nm-property-compare.h all: cleanup includes in header files 2016-08-17 19:09:50 +02:00
nm-setting-8021x.c all: fix typos in documentation and comments 2017-03-17 15:11:20 +01:00
nm-setting-8021x.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-adsl.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-adsl.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-bluetooth.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-bluetooth.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-bond.c libnm-core,shared: fix typo in '(allow-none)' annotation 2017-04-27 09:03:34 +02:00
nm-setting-bond.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-bridge-port.c settings: drop redundant range check from NMSettingBridgePort::verify() 2017-02-06 19:27:21 +01:00
nm-setting-bridge-port.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-bridge.c man,libnm-core: fix typos 2016-03-30 12:03:36 +02:00
nm-setting-bridge.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-cdma.c libnm-core: add mtu property to cdma setting 2017-02-20 09:18:16 +01:00
nm-setting-cdma.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-connection.c all: fix typo 'entires' -> 'entries' 2017-05-05 19:16:39 +02:00
nm-setting-connection.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-dcb.c all: modify line separator comments to be 80 chars wide 2016-10-03 12:01:15 +02:00
nm-setting-dcb.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-dummy.c libnm-core: require interface name for dummy connections 2017-02-23 10:58:32 +01:00
nm-setting-dummy.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-generic.c all: modify line separator comments to be 80 chars wide 2016-10-03 12:01:15 +02:00
nm-setting-generic.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-gsm.c libnm-core: add mtu property to gsm setting 2017-02-20 09:18:16 +01:00
nm-setting-gsm.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-infiniband.c all: use nm_utils_is_valid_iface_name() 2017-01-06 15:11:56 +01:00
nm-setting-infiniband.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-ip-config.c core,libnm-core: use same route attribute names of iproute2 2017-03-22 12:04:25 +01:00
nm-setting-ip-config.h core,libnm-core: use same route attribute names of iproute2 2017-03-22 12:04:25 +01:00
nm-setting-ip-tunnel.c all: use nm_utils_is_valid_iface_name() 2017-01-06 15:11:56 +01:00
nm-setting-ip-tunnel.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-ip4-config.c ifcfg-rh: support route options 2017-03-06 15:20:25 +01:00
nm-setting-ip4-config.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-ip6-config.c device: support dynamic "connection.stable-id" in form of text-substitution 2017-01-09 14:50:33 +01:00
nm-setting-ip6-config.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-macsec.c all: fix typos in documentation and comments 2017-03-17 15:11:20 +01:00
nm-setting-macsec.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-macvlan.c all: use nm_utils_is_valid_iface_name() 2017-01-06 15:11:56 +01:00
nm-setting-macvlan.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-olpc-mesh.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-olpc-mesh.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-ppp.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-ppp.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-pppoe.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-pppoe.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-private.h libnm-core: expose internal _nm_connection_verify() function 2017-03-02 12:14:29 +01:00
nm-setting-proxy.c libnm-core: add ifcfg-rh documentation for proxy settings 2017-01-17 14:27:31 +01:00
nm-setting-proxy.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-serial.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-serial.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-team-port.c libnm: reject too large team-config JSON 2016-09-27 10:56:57 +02:00
nm-setting-team-port.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-team.c libnm: reject too large team-config JSON 2016-09-27 10:56:57 +02:00
nm-setting-team.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-tun.c all: use "unsigned" instead of "unsigned int" 2017-03-14 11:26:29 +01:00
nm-setting-tun.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-user.c libnm: track invalid user data separately and reject during verify() 2017-05-06 14:53:05 +02:00
nm-setting-user.h libnm: add NMSettingUser 2017-03-28 14:58:21 +02:00
nm-setting-vlan.c all: fix typo 'entires' -> 'entries' 2017-05-05 19:16:39 +02:00
nm-setting-vlan.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-vpn.c setting-vpn: whatever is in vpn.secrets always is a secrets 2016-07-19 16:14:51 +02:00
nm-setting-vpn.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-vxlan.c all: use nm_utils_is_valid_iface_name() 2017-01-06 15:11:56 +01:00
nm-setting-vxlan.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-wimax.c all: cleanup includes and let "nm-default.h" include "config.h" 2016-02-19 17:53:25 +01:00
nm-setting-wimax.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-wired.c libnm-core,shared: fix typo in '(allow-none)' annotation 2017-04-27 09:03:34 +02:00
nm-setting-wired.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-wireless-security.c all: fix typos in documentation and comments 2017-03-17 15:11:20 +01:00
nm-setting-wireless-security.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting-wireless.c libnm-core: clear wifi.mac-address-randomization when unsetting wifi.cloned-mac-address 2017-01-28 17:17:14 +01:00
nm-setting-wireless.h libnm-core: sensible docstrings for NMSettings* 2017-03-17 10:15:11 +01:00
nm-setting.c libnm: add NMSettingUser 2017-03-28 14:58:21 +02:00
nm-setting.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-simple-connection.c libnm-core: add _nm_simple_connection_new_from_dbus() function 2016-03-26 12:10:54 +01:00
nm-simple-connection.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-utils-private.h libnm-core: define known route attribute names and validation function 2017-03-06 15:20:25 +01:00
nm-utils.c libnm: fix type annotation for nm_utils_enum_from_str() 2017-03-25 17:12:27 +01:00
nm-utils.h libnm-core: add attribute parsing/format helpers 2017-03-06 15:20:25 +01:00
nm-version.h include: use double-quotes to include our own headers 2017-03-09 14:12:35 +01:00
nm-vpn-dbus-interface.h libnm: revert coercing NMVpnConnectionStateReason to NMActiveConnectionStateReason 2017-03-17 13:00:32 +01:00
nm-vpn-editor-plugin.c all: modify line separator comments to be 80 chars wide 2016-10-03 12:01:15 +02:00
nm-vpn-editor-plugin.h libnm-core/vpn-editor-plugin: add missing documentation 2016-11-21 13:53:03 +01:00
nm-vpn-plugin-info.c all: use nm_utils_strv_find_first() from shared/nm-utils 2017-02-04 17:55:30 +01:00
nm-vpn-plugin-info.h libnm/vpn: pass NMVpnPluginInfo to the NMVpnEditorPlugin instance 2016-06-15 10:32:32 +02:00