mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-15 08:14:28 +08:00
client/gatt: proxy_property_changed: check for NULL iterator
The passed iterator can be NULL as in gdbus/client.c::properties_changed(): ... proxy->prop_func(..., ..., iter=NULL, ...) +--client/gatt.c::proxy_property_changed(..., ..., iter, ...); +--dbus_message_iter_get_arg_type(iter); ...
This commit is contained in:
parent
47346e5390
commit
ee750bbaf6
@ -3003,17 +3003,20 @@ static void proxy_property_changed(GDBusProxy *proxy, const char *name,
|
|||||||
chrc->path, bt_uuidstr_to_str(chrc->uuid), name);
|
chrc->path, bt_uuidstr_to_str(chrc->uuid), name);
|
||||||
|
|
||||||
if (!strcmp(name, "Value")) {
|
if (!strcmp(name, "Value")) {
|
||||||
DBusMessageIter array;
|
uint8_t *value = '\0'; /* don't pass NULL to write_value() */
|
||||||
uint8_t *value;
|
int len = 0;
|
||||||
int len;
|
|
||||||
|
if (iter && dbus_message_iter_get_arg_type(iter) ==
|
||||||
|
DBUS_TYPE_ARRAY) {
|
||||||
|
DBusMessageIter array;
|
||||||
|
|
||||||
if (dbus_message_iter_get_arg_type(iter) == DBUS_TYPE_ARRAY) {
|
|
||||||
dbus_message_iter_recurse(iter, &array);
|
dbus_message_iter_recurse(iter, &array);
|
||||||
dbus_message_iter_get_fixed_array(&array, &value, &len);
|
dbus_message_iter_get_fixed_array(&array, &value, &len);
|
||||||
write_value(&chrc->value_len, &chrc->value, value, len,
|
|
||||||
0, chrc->max_val_len);
|
|
||||||
bt_shell_hexdump(value, len);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
write_value(&chrc->value_len, &chrc->value, value, len,
|
||||||
|
0, chrc->max_val_len);
|
||||||
|
bt_shell_hexdump(value, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_dbus_emit_property_changed(conn, chrc->path, CHRC_INTERFACE, name);
|
g_dbus_emit_property_changed(conn, chrc->path, CHRC_INTERFACE, name);
|
||||||
|
Loading…
Reference in New Issue
Block a user