Re: [PATCH v2] ASoC: soc-pcm: Add NULL check in BE reparenting

From: Cezary Rojewski
Date: Wed Nov 23 2022 - 04:17:50 EST


On 2022-11-22 7:31 AM, Srinivasa Rao Mandadapu wrote:
Add NULL check in dpcm_be_reparent API, to handle
kernel NULL pointer dereference error.
The issue occurred in fuzzing test.

Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@xxxxxxxxxxx>
---
Changes Since V1:
-- Update commit title.

sound/soc/soc-pcm.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index 493f003..a7810c7 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -1247,6 +1247,8 @@ static void dpcm_be_reparent(struct snd_soc_pcm_runtime *fe,
return;
be_substream = snd_soc_dpcm_get_substream(be, stream);
+ if (!be_substream)
+ return;
for_each_dpcm_fe(be, stream, dpcm) {
if (dpcm->fe == fe)

The explanation provided is hardly satisfactory. The reason I asked, is that be_substream should never be null by the time we get to dpcm_be_reparent(). There is a number of invocations of snd_soc_dpcm_get_substream() within sound/soc/*.c and yet most of them are not checked - as they do not need to be.

I believe that the problem may lie elsewhere and this patch just covered things up.


Regards,
Czarek