ASoC: Intel: Fix incorrect sizeof() in sst_hsw_stream_get_volume()
Subsystems (4)
PATCH 1/1 ASoC: Intel: Fix incorrect sizeof() in sst_hsw_stream_get_volume()
Fix an incorrect sizeof() usage in sst_hsw_stream_get_volume(). sst_dsp_read() is called to read into a variable of type u32, but is passed sizeof(u32 *) for argument 'size_t bytes'. Detected by Coverity: CID 1195260.
--- sound/soc/intel/sst-haswell-ipc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
sound/soc/intel/sst-haswell-ipc.c +2 -1
@@ -991,7 +991,8 @@ int sst_hsw_stream_get_volume(struct sst_hsw *hsw, struct sst_hsw_stream *streamreturn -EINVAL ;sst_dsp_read (hsw->dsp, volume, - stream->reply.volume_register_address[channel],sizeof (volume)); + stream->reply.volume_register_address[channel], +sizeof (*volume));return 0 ; }
Signature · 1 line
1.8.3.2
Quoted 3 lines · Christian Engelmayer
Fix an incorrect
sizeof()usage insst_hsw_stream_get_volume().sst_dsp_read()is called to read into a variable of type u32, but is passedsizeof(u32 *)for argument 'size_tbytes'. Detected by Coverity: CID 1195260.
Applied, thanks.
Quoted 5 lines · Christian Engelmayer
Fix an incorrect
sizeof()usage insst_hsw_stream_get_volume().sst_dsp_read()is called to read into a variable of type u32, but is passedsizeof(u32 *)for argument 'size_tbytes'. Detected by Coverity: CID 1195260.Signed-off-by Christian Engelmayer <[email protected]>
There are a couple others in this file. I introduced one of them. :( Sorry about that. I'll send a patch for that.
regards,
dan carpenter
PATCH 1/1 ASoC: Intel: some incorrect sizeof() usages
In reply to Christian EngelmayerThe intent was to say "sizeof(*pos)" and not "sizeof(pos)".
The sizeof(*pos) is 8 bytes so the bug won't show up on 64 bit systems. The sizeof(*dx) is 172 bytes so that will be a bugfix.
---
Static analysis. Not tested.
sound/soc/intel/sst-haswell-ipc.c +2 -2
@@ -617,7 +617,7 @@ static void hsw_notification_work(struct work_struct *work)case IPC_POSITION_CHANGED :trace_ipc_notification ("DSP stream position changed for" , stream->reply.stream_hw_id); -sst_dsp_inbox_read (hsw->dsp, pos,sizeof (pos)); +sst_dsp_inbox_read (hsw->dsp, pos,sizeof (*pos));if (stream->notify_position) stream->notify_position (stream, stream->pdata);
@@ -1609,7 +1609,7 @@ int sst_hsw_dx_set_state(struct sst_hsw *hsw,trace_ipc_request ("PM enter Dx state" , state); ret =ipc_tx_message_wait (hsw, header, &state_,sizeof (state_), - dx,sizeof (dx)); + dx,sizeof (*dx));if (ret <0 ) {dev_err (hsw->dev,"ipc: error set dx state %d failed\n" , state);return ret;
Re: [patch] ASoC: Intel: some incorrect sizeof() usages
Quoted 4 lines · Dan Carpenter
The intent was to say "
sizeof(*pos)" and not "sizeof(pos)".The
sizeof(*pos)is 8 bytes so the bug won't show up on 64 bit systems. Thesizeof(*dx)is 172 bytes so that will be a bugfix.
Applied, thanks.