NetworkManager/libnm
Dan Winship 2ac83c0e8b libnm: fix async property circular reference handling
3e5b3833 changed various libnm methods to return 0-length arrays
rather than NULL, and changed various other places to assume this
behavior. The guarantee that they didn't return NULL relied on the
assumption that all D-Bus properties would get initialized by NMObject
code before anyone could call their get methods.

However, this assumption was violated in the case where two objects
circularly referenced each other (eg, NMDevice and
NMActiveConnection). f9f9d297 attempted to fix this by slightly
changing the ordering of NMObjectCache operations, but it actually
ended up breaking things and causing infinite loops of object creation
in some cases.

There's no way to guarantee we never return partially-initialized
objects without heavily rewriting the object-creation code, so this
reverts most of f9f9d297 (leaving only the new comment in
_nm_object_create()). The crashes introduced by 3e5b3833 will no
longer happen because we've now fixed the classes to have initialized
their object arrays to non-NULL values even before they get the real
values.
2014-10-19 09:26:49 -04:00
..
tests libnm: fix crash in nm_client_new_async(), add a test for it 2014-10-10 13:44:54 -04:00
libnm.pc.in libnm: add libnm/libnm-core (part 2) 2014-08-01 14:34:04 -04:00
libnm.ver libnm: hide API for generic handling of secrets 2014-10-12 21:17:17 +02:00
Makefile.am libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
NetworkManager.h libnm: merge NMRemoteSettings into NMClient 2014-10-10 12:40:19 -04:00
nm-access-point.c libnm: make use of GParamSpecFlags and GParamSpecEnum 2014-10-03 09:36:28 -04:00
nm-access-point.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-active-connection.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-active-connection.h libnm: fix NMActiveConnection object-path-valued properties 2014-10-10 13:10:19 -04:00
nm-client.c libnm: fix crash in nm_client_new_async(), add a test for it 2014-10-10 13:44:54 -04:00
nm-client.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-dbus-helpers.c libnm: share private DBUS connection 2014-10-03 11:21:40 +02:00
nm-dbus-helpers.h libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-device-adsl.c libnm: let NMObject create all D-Bus proxies 2014-09-18 11:51:08 -04:00
nm-device-adsl.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-bond.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-device-bond.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-bridge.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-device-bridge.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-bt.c libnm: make use of GParamSpecFlags and GParamSpecEnum 2014-10-03 09:36:28 -04:00
nm-device-bt.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-ethernet.c libnm: let NMObject create all D-Bus proxies 2014-09-18 11:51:08 -04:00
nm-device-ethernet.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-generic.c libnm: let NMObject create all D-Bus proxies 2014-09-18 11:51:08 -04:00
nm-device-generic.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-infiniband.c libnm: let NMObject create all D-Bus proxies 2014-09-18 11:51:08 -04:00
nm-device-infiniband.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-modem.c libnm: make use of GParamSpecFlags and GParamSpecEnum 2014-10-03 09:36:28 -04:00
nm-device-modem.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-olpc-mesh.c libnm: let NMObject create all D-Bus proxies 2014-09-18 11:51:08 -04:00
nm-device-olpc-mesh.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-private.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-device-team.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-device-team.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-vlan.c libnm: let NMObject create all D-Bus proxies 2014-09-18 11:51:08 -04:00
nm-device-vlan.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-wifi.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-device-wifi.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-wimax.c libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device-wimax.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device.c libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-device.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-dhcp4-config.c libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-dhcp4-config.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-dhcp6-config.c libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-dhcp6-config.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-ip4-config.c libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-ip4-config.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-ip6-config.c libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-ip6-config.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-manager.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-manager.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-object-cache.c libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-object-cache.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-object-private.h libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-object.c libnm: fix async property circular reference handling 2014-10-19 09:26:49 -04:00
nm-object.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-remote-connection-private.h libnm: add libnm/libnm-core (part 1) 2014-08-01 14:34:04 -04:00
nm-remote-connection.c libnm: fix compilation for wrong g_return call on void/non-void function 2014-09-25 17:39:56 +02:00
nm-remote-connection.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-remote-settings.c libnm: further NULL-vs-empty-array fixes 2014-10-19 09:26:49 -04:00
nm-remote-settings.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-secret-agent.c libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-secret-agent.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-types.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-vpn-connection.c libnm: make use of GParamSpecFlags and GParamSpecEnum 2014-10-03 09:36:28 -04:00
nm-vpn-connection.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00
nm-vpn-plugin-ui-interface.c libnm: merge libnm-vpn into libnm 2014-09-18 11:51:07 -04:00
nm-vpn-plugin-ui-interface.h libnm: merge libnm-vpn into libnm 2014-09-18 11:51:07 -04:00
nm-vpn-plugin-utils.c libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-vpn-plugin-utils.h all: fix up multiple-include-guard defines 2014-08-16 10:17:14 -04:00
nm-vpn-plugin.c libnm: make use of GParamSpecFlags and GParamSpecEnum 2014-10-03 09:36:28 -04:00
nm-vpn-plugin.h libnm: port to GDBus 2014-09-18 11:51:09 -04:00
nm-wimax-nsp.c libnm: make use of GParamSpecFlags and GParamSpecEnum 2014-10-03 09:36:28 -04:00
nm-wimax-nsp.h libnm: add nm-types.h, to avoid include loops 2014-10-10 13:10:18 -04:00