NetworkManager/libnm-core
Thomas Haller 6163263b42 libnm-core: make failure cases for nm_connection_normalize() more robust against bugs
We would expect that attempts to normalize a connection
are successful as verify() indicates. This way, a connection
is not modified if it cannot be fixed, and a connection will
be valid and modified after attempts to normalization.

However, there might be subtle, unexpected ways how this can fail.

For example, if NMSettingConnection:verify() detects a missing base type
setting, it returns NORMALIZABLE_ERROR if it finds a valid
NMSettingConnection:type. Normalization then adds an empty, default
setting. However, a new verify() might fail due to other reasons.
This would be a bug in NMSettingConnection:verify() which must not
indicate that it is able to normalize the connection, when it actually
is unable to do so.

Such bugs need fixing, but the code should be more robust to this case
because there might be complex, unanticipated situations.
Especially since NM relies on having a valid connection after normalize(),
so a strict error-out behavior is important.

Signed-off-by: Thomas Haller <thaller@redhat.com>
2014-08-22 15:24:31 +02:00
..
tests tests: refactor tests to use g_test framework (g_test_add_func) 2014-08-22 15:24:31 +02:00
crypto.c libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
crypto.h libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
crypto_gnutls.c libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
crypto_nss.c libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
Makefile.am libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
Makefile.libnm-core all: add nm-core-internal.h header 2014-08-22 15:22:16 +02:00
nm-connection.c libnm-core: make failure cases for nm_connection_normalize() more robust against bugs 2014-08-22 15:24:31 +02:00
nm-connection.h libnm-core, libnm, core: make NMConnection an interface 2014-08-16 10:17:53 -04:00
nm-core-internal.h libnm-core: add _nm_utils_hash_values_to_slist() 2014-08-22 15:22:16 +02:00
nm-dbus-interface.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-param-spec-specialized.c libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-param-spec-specialized.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-8021x.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-8021x.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-adsl.c libnm-core: fix crash in NMSettingAdsl:verify() 2014-08-19 00:13:11 +02:00
nm-setting-adsl.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-bluetooth.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-bluetooth.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-bond.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-bond.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-bridge-port.c libnm-core: normalize slave-type and slave-settings of connections 2014-08-22 15:24:31 +02:00
nm-setting-bridge-port.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-bridge.c libnm-core: include ETH_ALEN/INFINIBAND_ALEN defines in nm-utils.h 2014-08-07 14:04:14 -04:00
nm-setting-bridge.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-cdma.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-cdma.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-connection.c libnm-core: normalize NMSettingConnection:type property 2014-08-22 15:24:31 +02:00
nm-setting-connection.h libnm-core: normalize slave-type and slave-settings of connections 2014-08-22 15:24:31 +02:00
nm-setting-dcb.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-dcb.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-generic.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-generic.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-gsm.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-gsm.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-infiniband.c libnm-core: include ETH_ALEN/INFINIBAND_ALEN defines in nm-utils.h 2014-08-07 14:04:14 -04:00
nm-setting-infiniband.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-ip4-config.c all: add nm-core-internal.h header 2014-08-22 15:22:16 +02:00
nm-setting-ip4-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-ip6-config.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-ip6-config.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-olpc-mesh.c libnm-core: include ETH_ALEN/INFINIBAND_ALEN defines in nm-utils.h 2014-08-07 14:04:14 -04:00
nm-setting-olpc-mesh.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-ppp.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-ppp.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-pppoe.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-pppoe.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-private.h libnm-core: normalize NMSettingConnection:type property 2014-08-22 15:24:31 +02:00
nm-setting-serial.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-serial.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-team-port.c libnm-core: normalize slave-type and slave-settings of connections 2014-08-22 15:24:31 +02:00
nm-setting-team-port.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-team.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-team.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-vlan.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-vlan.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-vpn.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-vpn.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-wimax.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-wimax.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-wired.c libnm-core: include ETH_ALEN/INFINIBAND_ALEN defines in nm-utils.h 2014-08-07 14:04:14 -04:00
nm-setting-wired.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-wireless-security.c libnm: add NetworkManager.h, disallow including individual headers 2014-08-01 14:34:40 -04:00
nm-setting-wireless-security.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting-wireless.c libnm-core: include ETH_ALEN/INFINIBAND_ALEN defines in nm-utils.h 2014-08-07 14:04:14 -04:00
nm-setting-wireless.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-setting.c libnm-core: normalize NMSettingConnection:type property 2014-08-22 15:24:31 +02:00
nm-setting.h libnm: move declaration of NM_SETTING_SECRET_FLAGS_ALL to nm-core-internal.h 2014-08-22 15:22:16 +02:00
nm-simple-connection.c libnm-core: clear secrets from NMSimpleConnection and NMSettingsConnection dispose() 2014-08-20 10:53:00 -05:00
nm-simple-connection.h libnm-core, libnm, core: make NMConnection an interface 2014-08-16 10:17:53 -04:00
nm-utils-private.h all: add nm-core-internal.h header 2014-08-22 15:22:16 +02:00
nm-utils.c libnm-core: add _nm_utils_hash_values_to_slist() 2014-08-22 15:22:16 +02:00
nm-utils.h libnm-core, libnm, core: make NMConnection an interface 2014-08-16 10:17:53 -04:00
nm-value-transforms.c libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-version.h.in libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-vpn-dbus-interface.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00