From aa1882c93f8a001880d8a51f48f2efee1221c090 Mon Sep 17 00:00:00 2001 From: Peter Meerwald-Stadler Date: Tue, 16 Aug 2016 15:33:24 +0200 Subject: [PATCH] bluetooth: Reorganize code to avoid Coverity NULL dereference warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CID 1353122 this is a false-positive because   if (dbus_message_has_interface(p->message, "org.bluez.Manager") ||         dbus_message_has_interface(p->message, "org.bluez.Adapter"))         d = NULL;     else if (!(d = pa_hashmap_get(y->devices, dbus_message_get_path(p->message)))) {         pa_log_warn("Received GetProperties() reply from unknown device: %s (device removed?)", dbus_message_get_path(p->message));         goto finish2;     } d can be NULL only if p->message interface is org.bluez.Manager or org.bluez.Adapter. If     dbus_message_is_method_call(p->message, "org.bluez.Device", "GetProperties") returns true, we know that the interface is org.bluez.Device. thanks, Tanu! --- src/modules/bluetooth/bluez4-util.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/bluetooth/bluez4-util.c b/src/modules/bluetooth/bluez4-util.c index 3793898ee..542ce35e9 100644 --- a/src/modules/bluetooth/bluez4-util.c +++ b/src/modules/bluetooth/bluez4-util.c @@ -657,13 +657,13 @@ static void get_properties_reply(DBusPendingCall *pending, void *userdata) { pa_assert(p->call_data == d); - if (d != NULL) + if (d != NULL) { old_any_connected = pa_bluez4_device_any_audio_connected(d); + valid = dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR ? -1 : 1; - valid = dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR ? -1 : 1; - - if (dbus_message_is_method_call(p->message, "org.bluez.Device", "GetProperties")) - d->device_info_valid = valid; + if (dbus_message_is_method_call(p->message, "org.bluez.Device", "GetProperties")) + d->device_info_valid = valid; + } if (dbus_message_is_error(r, DBUS_ERROR_SERVICE_UNKNOWN)) { pa_log_debug("Bluetooth daemon is apparently not available.");