|
@@ -916,6 +916,13 @@ static int skl_tplg_tlv_control_get(struct snd_kcontrol *kcontrol,
|
|
|
skl_get_module_params(skl->skl_sst, (u32 *)bc->params,
|
|
|
bc->max, bc->param_id, mconfig);
|
|
|
|
|
|
+ /* decrement size for TLV header */
|
|
|
+ size -= 2 * sizeof(u32);
|
|
|
+
|
|
|
+ /* check size as we don't want to send kernel data */
|
|
|
+ if (size > bc->max)
|
|
|
+ size = bc->max;
|
|
|
+
|
|
|
if (bc->params) {
|
|
|
if (copy_to_user(data, &bc->param_id, sizeof(u32)))
|
|
|
return -EFAULT;
|