From: Kuba Pawlak Date: Fri, 10 Jul 2015 15:08:01 +0000 (+0200) Subject: hfp_hf_bluez5: Fix crash on re-pairing a Device X-Git-Tag: upstream/1.17~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71df8bb15e75705cab659e679fbe0b6f8c52bbf7;p=platform%2Fupstream%2Fofono.git hfp_hf_bluez5: Fix crash on re-pairing a Device It may happen that a Device object is unpaired an paired again without being removed from DBus. This in turn triggers second modem object to be created, but not fully initialized. If this modem object is used, oFono will crash. --- diff --git a/plugins/hfp_hf_bluez5.c b/plugins/hfp_hf_bluez5.c index 5ee70c55..713c7896 100644 --- a/plugins/hfp_hf_bluez5.c +++ b/plugins/hfp_hf_bluez5.c @@ -738,8 +738,17 @@ static void modem_register_from_proxy(GDBusProxy *proxy, const char *path) return; dbus_message_iter_get_basic(&iter, &paired); - if (paired == FALSE) + + if (paired == FALSE) { + modem = ofono_modem_find(device_path_compare, (void *) path); + + if (modem != NULL) { + ofono_modem_remove(modem); + g_dbus_proxy_set_removed_watch(proxy, NULL, NULL); + g_dbus_proxy_set_property_watch(proxy, NULL, NULL); + } return; + } if (g_dbus_proxy_get_property(proxy, "UUIDs", &iter) == FALSE) return;