alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure
@ 2023-01-20 10:21 Peter Ujfalusi
  2023-01-20 11:02 ` AngeloGioacchino Del Regno
  2023-01-20 15:43 ` Mark Brown
  0 siblings, 2 replies; 3+ messages in thread
From: Peter Ujfalusi @ 2023-01-20 10:21 UTC (permalink / raw)
  To: lgirdwood, broonie
  Cc: alsa-devel, error27, kai.vehmanen, pierre-louis.bossart,
	ranjani.sridharan, linux-mm, oe-kbuild-all,
	angelogioacchino.delregno

If the swidget is NULL we skip the preparing of the widget and jump to
handle the sink path of the widget.
If the prepare fails in this case we would undo the prepare but the swidget
is NULL (we skipped the prepare for the widget).

To avoid NULL pointer dereference in this case we must check swidget
against NULL pointer once again.


Fixes: 0ad84b11f2f8 ("ASoC: SOF: sof-audio: skip prepare/unprepare if swidget is NULL")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
---
 sound/soc/sof/sof-audio.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c
index f17d405a9da9..2dff3ae25d27 100644
--- a/sound/soc/sof/sof-audio.c
+++ b/sound/soc/sof/sof-audio.c
@@ -334,7 +334,8 @@ sof_prepare_widgets_in_path(struct snd_sof_dev *sdev, struct snd_soc_dapm_widget
 			p->walking = false;
 			if (ret < 0) {
 				/* unprepare the source widget */
-				if (widget_ops[widget->id].ipc_unprepare && swidget->prepared) {
+				if (widget_ops[widget->id].ipc_unprepare &&
+				    swidget && swidget->prepared) {
 					widget_ops[widget->id].ipc_unprepare(swidget);
 					swidget->prepared = false;
 				}
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure
  2023-01-20 10:21 [PATCH] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure Peter Ujfalusi
@ 2023-01-20 11:02 ` AngeloGioacchino Del Regno
  2023-01-20 15:43 ` Mark Brown
  1 sibling, 0 replies; 3+ messages in thread
From: AngeloGioacchino Del Regno @ 2023-01-20 11:02 UTC (permalink / raw)
  To: Peter Ujfalusi, lgirdwood, broonie
  Cc: alsa-devel, error27, kai.vehmanen, pierre-louis.bossart,
	ranjani.sridharan, linux-mm, oe-kbuild-all

Il 20/01/23 11:21, Peter Ujfalusi ha scritto:
> If the swidget is NULL we skip the preparing of the widget and jump to
> handle the sink path of the widget.
> If the prepare fails in this case we would undo the prepare but the swidget
> is NULL (we skipped the prepare for the widget).
> 
> To avoid NULL pointer dereference in this case we must check swidget
> against NULL pointer once again.
> 
> 
> Fixes: 0ad84b11f2f8 ("ASoC: SOF: sof-audio: skip prepare/unprepare if swidget is NULL")
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <error27@gmail.com>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure
  2023-01-20 10:21 [PATCH] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure Peter Ujfalusi
  2023-01-20 11:02 ` AngeloGioacchino Del Regno
@ 2023-01-20 15:43 ` Mark Brown
  1 sibling, 0 replies; 3+ messages in thread
From: Mark Brown @ 2023-01-20 15:43 UTC (permalink / raw)
  To: lgirdwood, Peter Ujfalusi
  Cc: alsa-devel, error27, kai.vehmanen, pierre-louis.bossart,
	ranjani.sridharan, linux-mm, oe-kbuild-all,
	angelogioacchino.delregno

On Fri, 20 Jan 2023 12:21:25 +0200, Peter Ujfalusi wrote:
> If the swidget is NULL we skip the preparing of the widget and jump to
> handle the sink path of the widget.
> If the prepare fails in this case we would undo the prepare but the swidget
> is NULL (we skipped the prepare for the widget).
> 
> To avoid NULL pointer dereference in this case we must check swidget
> against NULL pointer once again.
> 
> [...]

Applied to

   broonie/sound.git for-next

Thanks!

[1/1] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure
      commit: fb4293600cc651cfe4d48ec489f1d175adf6e2f8

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-01-20 15:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-20 10:21 [PATCH] ASoC: SOF: sof-audio: prepare_widgets: Check swidget for NULL on sink failure Peter Ujfalusi
2023-01-20 11:02 ` AngeloGioacchino Del Regno
2023-01-20 15:43 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).