2020-04-22 11:26:30

by Colin King

[permalink] [raw]
Subject: [PATCH] ASoC: SOF: ensure all fields in header are zero'd before copying back to userspace

From: Colin Ian King <[email protected]>

Field header.tlv is uninitialized and being copied back to userspace
and hence leaking data from the stack to userspace. Fix this by
ensuring the header structure is zero'd.

Fixes: c3078f539704 ("ASoC: SOF: Add Sound Open Firmware KControl support")
Addresses-Coverity: ("Uninitialized scalar variable")
Signed-off-by: Colin Ian King <[email protected]>
---
sound/soc/sof/control.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/sof/control.c b/sound/soc/sof/control.c
index dfc412e2d956..97d5c1a4c1ff 100644
--- a/sound/soc/sof/control.c
+++ b/sound/soc/sof/control.c
@@ -362,7 +362,7 @@ int snd_sof_bytes_ext_get(struct snd_kcontrol *kcontrol,
struct snd_sof_control *scontrol = be->dobj.private;
struct snd_soc_component *scomp = scontrol->scomp;
struct sof_ipc_ctrl_data *cdata = scontrol->control_data;
- struct snd_ctl_tlv header;
+ struct snd_ctl_tlv header = { };
struct snd_ctl_tlv __user *tlvd =
(struct snd_ctl_tlv __user *)binary_data;
int data_size;
--
2.25.1


2020-04-22 12:01:46

by Colin King

[permalink] [raw]
Subject: Re: [PATCH] ASoC: SOF: ensure all fields in header are zero'd before copying back to userspace

On 22/04/2020 12:45, Dan Carpenter wrote:
> On Wed, Apr 22, 2020 at 12:24:17PM +0100, Colin King wrote:
>> From: Colin Ian King <[email protected]>
>>
>> Field header.tlv is uninitialized and being copied back to userspace
> ^^^^^^^^^^
> header.tlv is a zero element array so it doens't have any stack data.

Thanks Dan, I totally overlooked that. That's another class if issues I
need to triage correctly.

>
>> and hence leaking data from the stack to userspace. Fix this by
>> ensuring the header structure is zero'd.
>
> regards,
> dan carpenter
>
>

2020-04-22 12:24:43

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] ASoC: SOF: ensure all fields in header are zero'd before copying back to userspace

On Wed, Apr 22, 2020 at 12:24:17PM +0100, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> Field header.tlv is uninitialized and being copied back to userspace
^^^^^^^^^^
header.tlv is a zero element array so it doens't have any stack data.

> and hence leaking data from the stack to userspace. Fix this by
> ensuring the header structure is zero'd.

regards,
dan carpenter