Fix segfault destroying libdbus connection

This commit is contained in:
Robbert van der Helm
2024-04-07 22:49:00 +02:00
parent c50ef826fb
commit 8d508dc2fe
2 changed files with 17 additions and 1 deletions
+6
View File
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic and this project adheres to [Semantic
Versioning](https://semver.org/spec/v2.0.0.html). Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Fixed
- Fixed a potential segfault when unloading yabridge.
## [5.1.0] - 2023-12-23 ## [5.1.0] - 2023-12-23
### Added ### Added
+11 -1
View File
@@ -57,9 +57,19 @@ std::mutex libdbus_mutex;
LIBDBUS_FUNCTIONS LIBDBUS_FUNCTIONS
#undef X #undef X
/**
* The deleter used for `libdbus_connection`. `libdbus_connection` can't
* directly reference `libdbus_connection_unref` directly because it will not
* yet have been initialized until just before `libdbus_connection` gets
* initialized.
*/
static void close_dbus_connection(DBusConnection* connection) {
libdbus_connection_unref(connection);
}
std::unique_ptr<DBusConnection, void (*)(DBusConnection*)> libdbus_connection( std::unique_ptr<DBusConnection, void (*)(DBusConnection*)> libdbus_connection(
nullptr, nullptr,
libdbus_connection_unref); close_dbus_connection);
/** /**
* Try to set up D-Bus. Returns `false` if a function could not be resolved or * Try to set up D-Bus. Returns `false` if a function could not be resolved or