Subject: CVE-2024-39491: ALSA: hda: cs35l56: Fix lifetime of cs_dsp instance

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

ALSA: hda: cs35l56: Fix lifetime of cs_dsp instance

The cs_dsp instance is initialized in the driver probe() so it
should be freed in the driver remove(). Also fix a missing call
to cs_dsp_remove() in the error path of cs35l56_hda_common_probe().

The call to cs_dsp_remove() was being done in the component unbind
callback cs35l56_hda_unbind(). This meant that if the driver was
unbound and then re-bound it would be using an uninitialized cs_dsp
instance.

It is best to initialize the cs_dsp instance in probe() so that it
can return an error if it fails. The component binding API doesn't
have any error handling so there's no way to handle a failure if
cs_dsp was initialized in the bind.

The Linux kernel CVE team has assigned CVE-2024-39491 to this issue.

Affected and fixed versions
===========================

	Issue introduced in 6.6 with commit 73cfbfa9caea and fixed in 6.6.33 with commit 9054c474f9c2
	Issue introduced in 6.6 with commit 73cfbfa9caea and fixed in 6.9.4 with commit 60d5e087e5f3
	Issue introduced in 6.6 with commit 73cfbfa9caea and fixed in 6.10 with commit d344873c4cbd

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-39491
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	sound/pci/hda/cs35l56_hda.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/9054c474f9c219e58a441e401c0e6e38fe713ff1
	https://git.kernel.org/stable/c/60d5e087e5f334475b032ad7e6ad849fb998f303
	https://git.kernel.org/stable/c/d344873c4cbde249b7152d36a273bcc45864001e