diff mbox series

[2/6] ASoC: Intel: Fix use of potentially uninitialized variable

Message ID 20190827141712.21015-3-amadeuszx.slawinski@linux.intel.com (mailing list archive)
State Accepted
Commit 810f3b860850148788fc1ed8a6f5f807199fed65
Headers show
Series Small fixes | expand

Commit Message

Amadeusz Sławiński Aug. 27, 2019, 2:17 p.m. UTC
From: Amadeusz Sławiński <amadeuszx.slawinski@intel.com>

If ipc->ops.reply_msg_match is NULL, we may end up using uninitialized
mask value.

reported by smatch:
sound/soc/intel/common/sst-ipc.c:266 sst_ipc_reply_find_msg() error: uninitialized symbol 'mask'.

Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@intel.com>
---
 sound/soc/intel/common/sst-ipc.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Cezary Rojewski Aug. 27, 2019, 7:18 p.m. UTC | #1
On 2019-08-27 16:17, Amadeusz Sławiński wrote:
> From: Amadeusz Sławiński <amadeuszx.slawinski@intel.com>
> 
> If ipc->ops.reply_msg_match is NULL, we may end up using uninitialized
> mask value.
> 
> reported by smatch:
> sound/soc/intel/common/sst-ipc.c:266 sst_ipc_reply_find_msg() error: uninitialized symbol 'mask'.
> 
> Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@intel.com>
> ---
>   sound/soc/intel/common/sst-ipc.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/sound/soc/intel/common/sst-ipc.c b/sound/soc/intel/common/sst-ipc.c
> index 1186a03a88d6..6068bb697e22 100644
> --- a/sound/soc/intel/common/sst-ipc.c
> +++ b/sound/soc/intel/common/sst-ipc.c
> @@ -223,6 +223,8 @@ struct ipc_message *sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc,
>   
>   	if (ipc->ops.reply_msg_match != NULL)
>   		header = ipc->ops.reply_msg_match(header, &mask);
> +	else
> +		mask = (u64)-1;

Please see linux/limits.h and check if this can't be replaced by an 
equivalent found there.

>   
>   	if (list_empty(&ipc->rx_list)) {
>   		dev_err(ipc->dev, "error: rx list empty but received 0x%llx\n",
>
diff mbox series

Patch

diff --git a/sound/soc/intel/common/sst-ipc.c b/sound/soc/intel/common/sst-ipc.c
index 1186a03a88d6..6068bb697e22 100644
--- a/sound/soc/intel/common/sst-ipc.c
+++ b/sound/soc/intel/common/sst-ipc.c
@@ -223,6 +223,8 @@  struct ipc_message *sst_ipc_reply_find_msg(struct sst_generic_ipc *ipc,
 
 	if (ipc->ops.reply_msg_match != NULL)
 		header = ipc->ops.reply_msg_match(header, &mask);
+	else
+		mask = (u64)-1;
 
 	if (list_empty(&ipc->rx_list)) {
 		dev_err(ipc->dev, "error: rx list empty but received 0x%llx\n",