diff options
author | Christian Eggers <ceggers@arri.de> | 2022-09-23 16:58:14 +0200 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2022-09-23 13:42:59 -0700 |
commit | 15895e401e1e29821b67bdc9d12d3bfa67333b35 (patch) | |
tree | 8ba86fcc868728d9622a194d600181f595d2623d /src | |
parent | f5cbe08af22e619c535f8933f2950d167ec8a3b9 (diff) | |
download | bluez-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.c | 10 |
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); |