alsa/0021-pcm-multi-Drop-the-fixed-slave_map-in-snd_pcm_multi_.patch
OBS User mrdocs 6977966888 Accepting request 483406 from home:tiwai:branches:multimedia:libs
- Backport upstream fix patches, including the deadlock fix for
  aplay/arecord (boo#1031525):
  0001-ucm-Add-ATTRIBUTE_UNUSED-for-unused-parameters-of-ex.patch
  0002-ucm-parser-needs-limits.h.patch
  0003-pcm-direct-allow-users-to-configure-different-period.patch
  0004-pcm-dshare-enable-silence.patch
  0005-pcm-rate-fix-the-hw_ptr-update-until-the-boundary-av.patch
  0006-plugin-dynamically-update-avail_min-on-slave.patch
  0007-rate-dynamic-update-avail_min-on-slave.patch
  0008-topology-fix-unused-const-variable-warning.patch
  0009-seq-improve-documentation-about-new-get-pid-card-fun.patch
  0010-pcm-direct-returning-semop-error-code-for-semaphore-.patch
  0011-pcm-direct-Fix-for-sync-issue-on-xrun-recover.patch
  0012-pcm-direct-check-state-before-enter-poll-on-timer.patch
  0013-pcm-direct-don-t-return-bogus-buffer-levels-in-xrun-.patch
  0014-conf-ucm-broxton-add-broxton-rt298-conf-files.patch
  0015-pcm-direct-Fix-deadlock-in-poll_descriptors.patch
  0016-ucm-Assure-the-user-input-card-name-not-to-exceed-ma.patch
  0017-ucm-Load-device-specific-configuration-file-based-on.patch
  0018-ucm-Add-command-get-_file-to-get-the-config-file-nam.patch
  0019-topology-Fix-incorrect-license-in-source-comments.patch
  0020-conf-cards-add-support-for-pistachio-card.patch
  0021-pcm-multi-Drop-the-fixed-slave_map-in-snd_pcm_multi_.patch
  0022-conf-Add-card-config-for-Intel-HDMI-DP-LPE-audio.patch
  0023-pcm-Avoid-lock-for-snd_pcm_nonblock.patch
  0024-pcm-Disable-locking-in-async-mode.patch
  0025-pcm-dmix-Allow-disabling-x86-optimizations.patch
  0026-pcm-dmix_rewind-corrupts-application-pointer-fix.patch
  0027-pcm-direct-fix-race-on-clearing-timer-events.patch
  0028-pcm-file-Enable-file-writing-for-capture-path.patch

OBS-URL: https://build.opensuse.org/request/show/483406
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa?expand=0&rev=210
2017-03-29 22:55:12 +00:00

45 lines
1.5 KiB
Diff

From e1143dd9ba350eb19d13d4e298eeb55179712a1e Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 27 Jan 2017 12:01:51 +0100
Subject: [PATCH 21/43] pcm: multi: Drop the fixed slave_map[] in
snd_pcm_multi_open()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
slave_map[] in snd_pcm_multi_open() is a fixed size array and
obviously we have no overflow check, and eventually the program gets
an error when more than 64 channels are used.
Although we can modify the code to allocate the array dynamically, it
turned out that we can drop the whole slave_map[] thingy in this
function when looking at the code closely. In the past, it was used
to identify the one-to-many mapping. But the check was dropped, and
now it's nothing more than a sanity check.
Reported-by: Jörg Müller <joerg.mueller7744@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
src/pcm/pcm_multi.c | 3 ---
1 file changed, 3 deletions(-)
--- a/src/pcm/pcm_multi.c
+++ b/src/pcm/pcm_multi.c
@@ -1015,7 +1015,6 @@ int snd_pcm_multi_open(snd_pcm_t **pcmp,
snd_pcm_multi_t *multi;
unsigned int i;
snd_pcm_stream_t stream;
- char slave_map[64][64] = { { 0 } };
int err;
assert(pcmp);
@@ -1059,8 +1058,6 @@ int snd_pcm_multi_open(snd_pcm_t **pcmp,
bind->slave_channel = schannels[i];
if (sidxs[i] < 0)
continue;
- assert(!slave_map[sidxs[i]][schannels[i]]);
- slave_map[sidxs[i]][schannels[i]] = 1;
}
multi->channels_count = channels_count;