Commit 5027fe36 authored by Pierre-Louis Bossart's avatar Pierre-Louis Bossart Committed by Mark Brown
parent fc7f6a05
...@@ -309,7 +309,7 @@ int snd_sof_bytes_ext_put(struct snd_kcontrol *kcontrol, ...@@ -309,7 +309,7 @@ int snd_sof_bytes_ext_put(struct snd_kcontrol *kcontrol,
* the length (as bytes) is needed to know the correct copy * the length (as bytes) is needed to know the correct copy
* length of data from tlvd->tlv. * length of data from tlvd->tlv.
*/ */
if (copy_from_user(&header, tlvd, sizeof(const struct snd_ctl_tlv))) if (copy_from_user(&header, tlvd, sizeof(struct snd_ctl_tlv)))
return -EFAULT; return -EFAULT;
/* make sure TLV info is consistent */ /* make sure TLV info is consistent */
...@@ -351,7 +351,7 @@ int snd_sof_bytes_ext_put(struct snd_kcontrol *kcontrol, ...@@ -351,7 +351,7 @@ int snd_sof_bytes_ext_put(struct snd_kcontrol *kcontrol,
} }
/* be->max has been verified to be >= sizeof(struct sof_abi_hdr) */ /* be->max has been verified to be >= sizeof(struct sof_abi_hdr) */
if (cdata->data->size > be->max - sizeof(const struct sof_abi_hdr)) { if (cdata->data->size > be->max - sizeof(struct sof_abi_hdr)) {
dev_err_ratelimited(scomp->dev, "error: Mismatch in ABI data size (truncated?).\n"); dev_err_ratelimited(scomp->dev, "error: Mismatch in ABI data size (truncated?).\n");
return -EINVAL; return -EINVAL;
} }
...@@ -405,15 +405,15 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _ ...@@ -405,15 +405,15 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _
goto out; goto out;
/* check data size doesn't exceed max coming from topology */ /* check data size doesn't exceed max coming from topology */
if (cdata->data->size > be->max - sizeof(const struct sof_abi_hdr)) { if (cdata->data->size > be->max - sizeof(struct sof_abi_hdr)) {
dev_err_ratelimited(scomp->dev, "error: user data size %d exceeds max size %zu.\n", dev_err_ratelimited(scomp->dev, "error: user data size %d exceeds max size %zu.\n",
cdata->data->size, cdata->data->size,
be->max - sizeof(const struct sof_abi_hdr)); be->max - sizeof(struct sof_abi_hdr));
ret = -EINVAL; ret = -EINVAL;
goto out; goto out;
} }
data_size = cdata->data->size + sizeof(const struct sof_abi_hdr); data_size = cdata->data->size + sizeof(struct sof_abi_hdr);
/* make sure we don't exceed size provided by user space for data */ /* make sure we don't exceed size provided by user space for data */
if (data_size > size) { if (data_size > size) {
...@@ -423,7 +423,7 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _ ...@@ -423,7 +423,7 @@ int snd_sof_bytes_ext_volatile_get(struct snd_kcontrol *kcontrol, unsigned int _
header.numid = scontrol->cmd; header.numid = scontrol->cmd;
header.length = data_size; header.length = data_size;
if (copy_to_user(tlvd, &header, sizeof(const struct snd_ctl_tlv))) { if (copy_to_user(tlvd, &header, sizeof(struct snd_ctl_tlv))) {
ret = -EFAULT; ret = -EFAULT;
goto out; goto out;
} }
...@@ -466,14 +466,14 @@ int snd_sof_bytes_ext_get(struct snd_kcontrol *kcontrol, ...@@ -466,14 +466,14 @@ int snd_sof_bytes_ext_get(struct snd_kcontrol *kcontrol,
cdata->data->abi = SOF_ABI_VERSION; cdata->data->abi = SOF_ABI_VERSION;
/* check data size doesn't exceed max coming from topology */ /* check data size doesn't exceed max coming from topology */
if (cdata->data->size > be->max - sizeof(const struct sof_abi_hdr)) { if (cdata->data->size > be->max - sizeof(struct sof_abi_hdr)) {
dev_err_ratelimited(scomp->dev, "error: user data size %d exceeds max size %zu.\n", dev_err_ratelimited(scomp->dev, "error: user data size %d exceeds max size %zu.\n",
cdata->data->size, cdata->data->size,
be->max - sizeof(const struct sof_abi_hdr)); be->max - sizeof(struct sof_abi_hdr));
return -EINVAL; return -EINVAL;
} }
data_size = cdata->data->size + sizeof(const struct sof_abi_hdr); data_size = cdata->data->size + sizeof(struct sof_abi_hdr);
/* make sure we don't exceed size provided by user space for data */ /* make sure we don't exceed size provided by user space for data */
if (data_size > size) if (data_size > size)
...@@ -481,7 +481,7 @@ int snd_sof_bytes_ext_get(struct snd_kcontrol *kcontrol, ...@@ -481,7 +481,7 @@ int snd_sof_bytes_ext_get(struct snd_kcontrol *kcontrol,
header.numid = scontrol->cmd; header.numid = scontrol->cmd;
header.length = data_size; header.length = data_size;
if (copy_to_user(tlvd, &header, sizeof(const struct snd_ctl_tlv))) if (copy_to_user(tlvd, &header, sizeof(struct snd_ctl_tlv)))
return -EFAULT; return -EFAULT;
if (copy_to_user(tlvd->tlv, cdata->data, data_size)) if (copy_to_user(tlvd->tlv, cdata->data, data_size))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment