Subject: CVE-2021-47020: soundwire: stream: fix memory leak in stream config error path

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

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

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

soundwire: stream: fix memory leak in stream config error path

When stream config is failed, master runtime will release all
slave runtime in the slave_rt_list, but slave runtime is not
added to the list at this time. This patch frees slave runtime
in the config error path to fix the memory leak.

The Linux kernel CVE team has assigned CVE-2021-47020 to this issue.

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

	Issue introduced in 4.18 with commit 89e590535f32 and fixed in 4.19.191 with commit 342260fe8210
	Issue introduced in 4.18 with commit 89e590535f32 and fixed in 5.4.119 with commit 870533403ffa
	Issue introduced in 4.18 with commit 89e590535f32 and fixed in 5.10.37 with commit 7c468deae306
	Issue introduced in 4.18 with commit 89e590535f32 and fixed in 5.11.21 with commit 2f17ac005b32
	Issue introduced in 4.18 with commit 89e590535f32 and fixed in 5.12.4 with commit effd2bd62b41
	Issue introduced in 4.18 with commit 89e590535f32 and fixed in 5.13 with commit 48f17f96a817

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-2021-47020
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:
	drivers/soundwire/stream.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/342260fe821047c3d515e3d28085d73fbdce3e80
	https://git.kernel.org/stable/c/870533403ffa28ff63e173045fc5369365642002
	https://git.kernel.org/stable/c/7c468deae306d0cbbd539408c26cfec04c66159a
	https://git.kernel.org/stable/c/2f17ac005b320c85d686088cfd4c2e7017912b88
	https://git.kernel.org/stable/c/effd2bd62b416f6629e18e3ce077c60de14cfdea
	https://git.kernel.org/stable/c/48f17f96a81763c7c8bf5500460a359b9939359f