summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-05-10 16:29:55 -0700
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2023-05-12 13:31:53 -0700
commit67fd8479f11c12e396494fe80cd1965ee7ff4500 (patch)
tree0c6b801e7e54eb4f9d1b31d5b322a172b0f8e323
parent93d0d8b2fc696212743be2fe9cedcf0edb1073d4 (diff)
downloadbluez-67fd8479f11c12e396494fe80cd1965ee7ff4500.tar.gz
client/player: Fix crashes accessing metadata
If metadata is not set the respective iovec is left NULL so it needs to be checked before accessing its fields.
-rw-r--r--client/player.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/client/player.c b/client/player.c
index 7719076c8..4674bd644 100644
--- a/client/player.c
+++ b/client/player.c
@@ -1605,7 +1605,7 @@ static void append_properties(DBusMessageIter *iter,
DBUS_TYPE_BYTE, &cfg->caps->iov_base,
cfg->caps->iov_len);
- if (cfg->meta->iov_len) {
+ if (cfg->meta && cfg->meta->iov_len) {
g_dbus_dict_append_basic_array(&dict, DBUS_TYPE_STRING, &meta,
DBUS_TYPE_BYTE, &cfg->meta->iov_base,
cfg->meta->iov_len);
@@ -1712,7 +1712,8 @@ static DBusMessage *endpoint_select_properties_reply(struct endpoint *ep,
cfg->target_latency = preset->target_latency;
/* Copy metadata */
- iov_append(&cfg->meta, cfg->ep->meta->iov_base, cfg->ep->meta->iov_len);
+ if (ep->meta)
+ iov_append(&cfg->meta, ep->meta->iov_base, ep->meta->iov_len);
if (preset->qos.phy)
/* Set QoS parameters */