diff options
| author | Peter Ujfalusi <peter.ujfalusi@linux.intel.com> | 2026-10-07 11:49:39 +0300 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-10-07 13:16:49 +0200 |
| commit | 973851a710c12b14890b914c4f27fc58cb6a1b86 (patch) | |
| tree | e0602d75cc121160ed86340b9a218b74522cbb2e /tools/lib/python/kdoc/python_version.py | |
| parent | 9d16a6633f4606d66406454a4e2ef505ed8cbf45 (diff) | |
ASoC: SOF: sof-audio: do not dereference swidget->spipe unconditionally on free
sof_widget_free_unlocked() dereferences swidget->spipe without checking
it for two things: swidget->spipe->complete for a scheduler widget, and
swidget->spipe->pipe_widget for the recursive free of the pipeline's
scheduler widget. Both can be reached with spipe or pipe_widget not
set, which oopses in the free path - where there is nothing left to
bail out to.
Check both before use and cache swidget->spipe in the local spipe
variable that is already there. A widget with no pipeline has nothing
to put or complete, and no scheduler widget to free, so skipping is the
correct behaviour.
No functional change for a widget that was successfully set up:
sof_widget_setup_unlocked() already rejects a dynamic pipeline widget
with no spipe or no spipe->pipe_widget with -EINVAL.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Link: https://patch.msgid.link/20261007084955.1256-13-peter.ujfalusi@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/lib/python/kdoc/python_version.py')
0 files changed, 0 insertions, 0 deletions
