summaryrefslogtreecommitdiffstats
path: root/sound/soc/intel
diff options
context:
space:
mode:
authorCezary Rojewski2019-06-13 21:04:34 +0200
committerMark Brown2019-06-25 16:33:50 +0200
commit9f4f42d710d417745cff05845f93370126f77ff7 (patch)
tree371ea0c8797702d7188a8fd865841d9081d3b793 /sound/soc/intel
parentASoC: Intel: Fix race condition in IPC rx list (diff)
downloadkernel-qcow2-linux-9f4f42d710d417745cff05845f93370126f77ff7.tar.gz
kernel-qcow2-linux-9f4f42d710d417745cff05845f93370126f77ff7.tar.xz
kernel-qcow2-linux-9f4f42d710d417745cff05845f93370126f77ff7.zip
ASoC: Intel: Common: Fix NULL dereference in tx_wait_done
rx_data and rx_bytes present for tx_wait_done are optional parameters. If not provided, function should not attempt to copy received data. This change fixes memcpy NULL pointer dereference issue occurring when optional rx_data is NULL while received message size is non-zero. Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/intel')
-rw-r--r--sound/soc/intel/common/sst-ipc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/soc/intel/common/sst-ipc.c b/sound/soc/intel/common/sst-ipc.c
index dcff13802c00..fc3340f1da3a 100644
--- a/sound/soc/intel/common/sst-ipc.c
+++ b/sound/soc/intel/common/sst-ipc.c
@@ -71,7 +71,7 @@ static int tx_wait_done(struct sst_generic_ipc *ipc,
} else {
/* copy the data returned from DSP */
- if (msg->rx_size)
+ if (rx_data)
memcpy(rx_data, msg->rx_data, msg->rx_size);
ret = msg->errno;
}