[PATCH BlueZ] obexd: clear pointers in `phonebook_exit`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This fixes a double-free which segfaults when dbus connection is lost:

    #0  g_type_check_instance_is_fundamentally_a (type_instance=type_instance@entry=0xffffb55201d0, fundamental_type=fundamental_type@entry=0x50 [GObject]) at ../gobject/gtype.c:3918
    #1  0x0000ffffb52712c0 in g_object_unref (_object=0xffffb55201d0) at ../gobject/gobject.c:4350
    #2  0x0000aaaac63f4798 in phonebook_exit ()
    #3  0x0000aaaac63f83a4 in plugin_cleanup ()
    #4  0x0000aaaac63e0ae8 in main ()
---
 obexd/plugins/phonebook-ebook.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/obexd/plugins/phonebook-ebook.c b/obexd/plugins/phonebook-ebook.c
index d772edca0..45db504bd 100644
--- a/obexd/plugins/phonebook-ebook.c
+++ b/obexd/plugins/phonebook-ebook.c
@@ -661,7 +661,7 @@ int phonebook_init(void)
 
 void phonebook_exit(void)
 {
-	g_object_unref(book_client);
-	g_object_unref(address_book);
-	g_object_unref(registry);
+	g_clear_object(&book_client);
+	g_clear_object(&address_book);
+	g_clear_object(&registry);
 }
-- 
2.50.1







[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux