]> git.ipfire.org Git - thirdparty/dbus.git/commit
bus: Don't explicitly clear BusConnections.monitors
authorSimon McVittie <smcv@collabora.com>
Thu, 20 Feb 2020 00:36:53 +0000 (00:36 +0000)
committerSimon McVittie <smcv@collabora.com>
Thu, 20 Feb 2020 12:43:34 +0000 (12:43 +0000)
commitb034b83b59efffd4cc819ad42d0cd078d91d53df
tree4b2224b1fc00fc78fda2e9a3003b0275254b85fa
parentb6fd40cef9aaebeff7f9653c0b7e18f43695d72f
bus: Don't explicitly clear BusConnections.monitors

Each connection that is an active monitor holds a pointer to its own
link in this list, via BusConnectionData.link_in_monitors. We can't
validly free the list while these pointers exist: that would be a
use-after-free, when each connection gets disconnected and tries to
remove itself from the list.

Instead, let each connection remove itself from the list, then assert
that the list has become empty.

Signed-off-by: Simon McVittie <smcv@collabora.com>
Resolves: https://gitlab.freedesktop.org/dbus/dbus/issues/291
bus/connection.c