]> git.baikalelectronics.ru Git - kernel.git/commit
ALSA: aloop: Fix access to not-yet-ready substream via cable
authorTakashi Iwai <tiwai@suse.de>
Thu, 22 Mar 2018 09:40:27 +0000 (10:40 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 22 Mar 2018 09:40:27 +0000 (10:40 +0100)
commita10f27202698e57ccb9697187cdc6871f046418f
treede66818727c2bff44061cfd97a9f2001475485d0
parent2cd6f1ddb1838f2f109681acf388c78a171d94a0
ALSA: aloop: Fix access to not-yet-ready substream via cable

In loopback_open() and loopback_close(), we assign and release the
substream object to the corresponding cable in a racy way.  It's
neither locked nor done in the right position.  The open callback
assigns the substream before its preparation finishes, hence the other
side of the cable may pick it up, which may lead to the invalid memory
access.

This patch addresses these: move the assignment to the end of the open
callback, and wrap with cable->lock for avoiding concurrent accesses.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/drivers/aloop.c