Skip to content

Commit fcfccd5

Browse files
committed
Merge: CVE-2024-58077: ASoC: soc-pcm: don't use soc_pcm_ret() on .prepare callback
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/6537 JIRA: https://issues.redhat.com/browse/RHEL-82517 CVE: CVE-2024-58077 ``` commit 301c26a Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Date: Fri Dec 13 01:21:10 2024 +0000 ASoC: soc-pcm: don't use soc_pcm_ret() on .prepare callback commit 1f56643 ("ASoC: lower "no backend DAIs enabled for ... Port" log severity") ignores -EINVAL error message on common soc_pcm_ret(). It is used from many functions, ignoring -EINVAL is over-kill. The reason why -EINVAL was ignored was it really should only be used upon invalid parameters coming from userspace and in that case we don't want to log an error since we do not want to give userspace a way to do a denial-of-service attack on the syslog / diskspace. So don't use soc_pcm_ret() on .prepare callback is better idea. Link: https://lore.kernel.org/r/87v7vptzap.wl-kuninori.morimoto.gx@renesas.com Cc: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Link: https://patch.msgid.link/87bjxg8jju.wl-kuninori.morimoto.gx@renesas.com Signed-off-by: Mark Brown <broonie@kernel.org>``` Signed-off-by: CKI Backport Bot <cki-ci-bot+cki-gitlab-backport-bot@redhat.com> --- <small>Created 2025-03-06 20:31 UTC by backporter - [KWF FAQ](https://red.ht/kernel_workflow_doc) - [Slack #team-kernel-workflow](https://redhat-internal.slack.com/archives/C04LRUPMJQ5) - [Source](https://gitlab.com/cki-project/kernel-workflow/-/blob/main/webhook/utils/backporter.py) - [Documentation](https://gitlab.com/cki-project/kernel-workflow/-/blob/main/docs/README.backporter.md) - [Report an issue](https://gitlab.com/cki-project/kernel-workflow/-/issues/new?issue%5Btitle%5D=backporter%20webhook%20issue)</small> Approved-by: Jaroslav Kysela <jkysela@redhat.com> Approved-by: Tony Camuso <tcamuso@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Augusto Caringi <acaringi@redhat.com>
2 parents a708044 + 92c3db3 commit fcfccd5

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

sound/soc/soc-pcm.c

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ static inline int _soc_pcm_ret(struct snd_soc_pcm_runtime *rtd,
3838
switch (ret) {
3939
case -EPROBE_DEFER:
4040
case -ENOTSUPP:
41-
case -EINVAL:
4241
break;
4342
default:
4443
dev_err(rtd->dev,
@@ -1001,7 +1000,13 @@ static int __soc_pcm_prepare(struct snd_soc_pcm_runtime *rtd,
10011000
}
10021001

10031002
out:
1004-
return soc_pcm_ret(rtd, ret);
1003+
/*
1004+
* Don't use soc_pcm_ret() on .prepare callback to lower error log severity
1005+
*
1006+
* We don't want to log an error since we do not want to give userspace a way to do a
1007+
* denial-of-service attack on the syslog / diskspace.
1008+
*/
1009+
return ret;
10051010
}
10061011

10071012
/* PCM prepare ops for non-DPCM streams */
@@ -1013,6 +1018,13 @@ static int soc_pcm_prepare(struct snd_pcm_substream *substream)
10131018
snd_soc_dpcm_mutex_lock(rtd);
10141019
ret = __soc_pcm_prepare(rtd, substream);
10151020
snd_soc_dpcm_mutex_unlock(rtd);
1021+
1022+
/*
1023+
* Don't use soc_pcm_ret() on .prepare callback to lower error log severity
1024+
*
1025+
* We don't want to log an error since we do not want to give userspace a way to do a
1026+
* denial-of-service attack on the syslog / diskspace.
1027+
*/
10161028
return ret;
10171029
}
10181030

@@ -2554,7 +2566,13 @@ int dpcm_be_dai_prepare(struct snd_soc_pcm_runtime *fe, int stream)
25542566
be->dpcm[stream].state = SND_SOC_DPCM_STATE_PREPARE;
25552567
}
25562568

2557-
return soc_pcm_ret(fe, ret);
2569+
/*
2570+
* Don't use soc_pcm_ret() on .prepare callback to lower error log severity
2571+
*
2572+
* We don't want to log an error since we do not want to give userspace a way to do a
2573+
* denial-of-service attack on the syslog / diskspace.
2574+
*/
2575+
return ret;
25582576
}
25592577

25602578
static int dpcm_fe_dai_prepare(struct snd_pcm_substream *substream)
@@ -2594,7 +2612,13 @@ static int dpcm_fe_dai_prepare(struct snd_pcm_substream *substream)
25942612
dpcm_set_fe_update_state(fe, stream, SND_SOC_DPCM_UPDATE_NO);
25952613
snd_soc_dpcm_mutex_unlock(fe);
25962614

2597-
return soc_pcm_ret(fe, ret);
2615+
/*
2616+
* Don't use soc_pcm_ret() on .prepare callback to lower error log severity
2617+
*
2618+
* We don't want to log an error since we do not want to give userspace a way to do a
2619+
* denial-of-service attack on the syslog / diskspace.
2620+
*/
2621+
return ret;
25982622
}
25992623

26002624
static int dpcm_run_update_shutdown(struct snd_soc_pcm_runtime *fe, int stream)

0 commit comments

Comments
 (0)