summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Eggers <ceggers@arri.de>2022-09-23 16:58:14 +0200
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2022-09-23 13:42:59 -0700
commit15895e401e1e29821b67bdc9d12d3bfa67333b35 (patch)
tree8ba86fcc868728d9622a194d600181f595d2623d /src
parentf5cbe08af22e619c535f8933f2950d167ec8a3b9 (diff)
downloadbluez-15895e401e1e29821b67bdc9d12d3bfa67333b35.tar.gz
battery: provided_battery_property_changed_cb: check iterator
The passed iterator can be NULL as in gdbus/client.c::properties_changed(): ... proxy->prop_func(..., ..., iter=NULL, ...) +--src/battery.c::provided_battery_property_changed_cb(, , iter, ); +--dbus_message_iter_get_arg_type(iter); ...
Diffstat (limited to 'src')
-rw-r--r--src/battery.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/battery.c b/src/battery.c
index 77fee22b6..88a53e80e 100644
--- a/src/battery.c
+++ b/src/battery.c
@@ -252,7 +252,7 @@ static void provided_battery_property_changed_cb(GDBusProxy *proxy,
DBusMessageIter *iter,
void *user_data)
{
- uint8_t percentage;
+ uint8_t percentage = 0;
const char *export_path;
DBusMessageIter dev_iter;
@@ -264,10 +264,12 @@ static void provided_battery_property_changed_cb(GDBusProxy *proxy,
if (strcmp(name, "Percentage") != 0)
return;
- if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_BYTE)
- return;
+ if (iter) {
+ if (dbus_message_iter_get_arg_type(iter) != DBUS_TYPE_BYTE)
+ return;
- dbus_message_iter_get_basic(iter, &percentage);
+ dbus_message_iter_get_basic(iter, &percentage);
+ }
DBG("battery percentage changed on %s, percentage = %d",
g_dbus_proxy_get_path(proxy), percentage);