Message ID | 20250429141533.803295-2-kernel.org@pileofstuff.org |
---|---|
State | New |
Headers | show |
Series | obexd: unregister profiles when the user is inactive | expand |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=958158 ---Test result--- Test Summary: CheckPatch PENDING 0.30 seconds GitLint PENDING 0.30 seconds BuildEll PASS 20.64 seconds BluezMake PASS 2678.12 seconds MakeCheck PASS 20.86 seconds MakeDistcheck PASS 199.06 seconds CheckValgrind PASS 276.37 seconds CheckSmatch PASS 306.71 seconds bluezmakeextell PASS 127.62 seconds IncrementalBuild PENDING 0.33 seconds ScanBuild PASS 925.74 seconds Details ############################## Test: CheckPatch - PENDING Desc: Run checkpatch.pl script Output: ############################## Test: GitLint - PENDING Desc: Run gitlint Output: ############################## Test: IncrementalBuild - PENDING Desc: Incremental build with the patches in the series Output: --- Regards, Linux Bluetooth
diff --git a/obexd/client/pbap.c b/obexd/client/pbap.c index 2f234fadf..90f8bdc02 100644 --- a/obexd/client/pbap.c +++ b/obexd/client/pbap.c @@ -1485,8 +1485,20 @@ void pbap_exit(void) { DBG(""); - dbus_connection_unref(conn); - conn = NULL; + g_dbus_remove_watch(system_conn, listener_id); + + unregister_profile(); + + if (system_conn) { + dbus_connection_close(system_conn); + dbus_connection_unref(system_conn); + system_conn = NULL; + } + + if (conn) { + dbus_connection_unref(conn); + conn = NULL; + } obc_driver_unregister(&pbap); }
pbap_exit() didn't previously unregister itself thoroughly. That was fine if it was only called when the service was about to exit, because everything was implicitly unregistered when the process ended. But we need to be more scrupulous if this can be called throughout the program's lifecycle. Send the UnregisterProfile message directly from pbap_exit(), then call unregister_profile(). The UnregisterProfile message can't be sent directly from unregister_profile(), because that also needs to be called when register_profile() fails halfway through. Signed-off-by: Andrew Sayers <kernel.org@pileofstuff.org> --- obexd/client/pbap.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)