From 8f32fa24cc9d044263bef468ef940d4353456f31 Mon Sep 17 00:00:00 2001 From: Arkadiusz Bokowy Date: Sun, 28 May 2023 09:44:45 +0200 Subject: [PATCH] battery: Check interface before getting property Client can export other interfaces than the BatteryProvide1 on the registered object manager. So, before getting battery provider specific property, validate that we are operating on the right interface. This change will allow client to implement only one object manger for media applications, players and battery providers without triggering error message. --- src/battery.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/battery.c b/src/battery.c index 88a53e80e..5c52581f3 100644 --- a/src/battery.c +++ b/src/battery.c @@ -288,6 +288,10 @@ static void provided_battery_added_cb(GDBusProxy *proxy, void *user_data) uint8_t percentage; DBusMessageIter iter; + if (strcmp(g_dbus_proxy_get_interface(proxy), + BATTERY_PROVIDER_INTERFACE) != 0) + return; + if (g_dbus_proxy_get_property(proxy, "Device", &iter) == FALSE) { warn("Battery object %s does not specify device path", path); return; @@ -295,10 +299,6 @@ static void provided_battery_added_cb(GDBusProxy *proxy, void *user_data) dbus_message_iter_get_basic(&iter, &export_path); - if (strcmp(g_dbus_proxy_get_interface(proxy), - BATTERY_PROVIDER_INTERFACE) != 0) - return; - device = btd_adapter_find_device_by_path(provider->manager->adapter, export_path); if (!device || device_is_temporary(device)) { @@ -341,15 +341,15 @@ static void provided_battery_removed_cb(GDBusProxy *proxy, void *user_data) const char *export_path; DBusMessageIter iter; + if (strcmp(g_dbus_proxy_get_interface(proxy), + BATTERY_PROVIDER_INTERFACE) != 0) + return; + if (g_dbus_proxy_get_property(proxy, "Device", &iter) == FALSE) return; dbus_message_iter_get_basic(&iter, &export_path); - if (strcmp(g_dbus_proxy_get_interface(proxy), - BATTERY_PROVIDER_INTERFACE) != 0) - return; - DBG("provided battery removed %s", g_dbus_proxy_get_path(proxy)); battery = find_battery_by_path(export_path); -- 2.47.3