import alsa-utils-1.2.5-2.el8
This commit is contained in:
parent
cd9058ff58
commit
cc8af08219
@ -1 +1 @@
|
|||||||
84b2c5e8f0c345844e03e8e4ae73b761c3ae8829 SOURCES/alsa-utils-1.2.4.tar.bz2
|
51ed4a6a5d151f4c3b580464460c3788ee1e90fb SOURCES/alsa-utils-1.2.5.tar.bz2
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
|||||||
SOURCES/alsa-utils-1.2.4.tar.bz2
|
SOURCES/alsa-utils-1.2.5.tar.bz2
|
||||||
|
@ -1,441 +1,462 @@
|
|||||||
From 737b64e1940b29c575be3942cd9f87aa390d93b2 Mon Sep 17 00:00:00 2001
|
From 78212445de4c8e07873cbc7dff2abcacd031f151 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?=E7=A9=8D=E4=B8=B9=E5=B0=BC=20Dan=20Jacobson?=
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
<jidanni@jidanni.org>
|
Date: Tue, 1 Jun 2021 17:47:42 +0200
|
||||||
Date: Sun, 18 Oct 2020 18:33:54 +0800
|
Subject: [PATCH 1/9] alsactl: fix the nested iteration
|
||||||
Subject: [PATCH 02/14] alsamixer: Fix the mixer views description in man page
|
|
||||||
|
|
||||||
Fix grammar mess.
|
There may be nested iterations for hw: card names.
|
||||||
|
Handle this card name in snd_card_iterator_sinit().
|
||||||
|
|
||||||
From: Dan Jacobson <jidanni@jidanni.org>
|
BugLink: https://github.com/alsa-project/alsa-lib/issues/142
|
||||||
|
Fixes: eefc2c6 ("alsactl: use card iterator functions for all card loops")
|
||||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
---
|
---
|
||||||
alsamixer/alsamixer.1 | 2 +-
|
alsactl/utils.c | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/alsactl/utils.c b/alsactl/utils.c
|
||||||
|
index c79fd95..881b505 100644
|
||||||
|
--- a/alsactl/utils.c
|
||||||
|
+++ b/alsactl/utils.c
|
||||||
|
@@ -247,6 +247,8 @@ int snd_card_iterator_sinit(struct snd_card_iterator *iter, const char *cardname
|
||||||
|
int cardno = -1;
|
||||||
|
|
||||||
|
if (cardname) {
|
||||||
|
+ if (strncmp(cardname, "hw:", 3) == 0)
|
||||||
|
+ cardname += 3;
|
||||||
|
cardno = snd_card_get_index(cardname);
|
||||||
|
if (cardno < 0) {
|
||||||
|
error("Cannot find soundcard '%s'...", cardname);
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
|
From 3d7a6facd9e1f962eef6c4ba3aa4cdc22477a6ac Mon Sep 17 00:00:00 2001
|
||||||
|
From: Chao Song <chao.song@linux.intel.com>
|
||||||
|
Date: Mon, 31 May 2021 10:29:57 +0800
|
||||||
|
Subject: [PATCH 2/9] topology: fix potential null pointer from strchr
|
||||||
|
|
||||||
|
This patch adds check to the return pointer from strchr,
|
||||||
|
because it may be null and cause segment fault, if component
|
||||||
|
is not properly constructed.
|
||||||
|
|
||||||
|
Fixes: https://github.com/alsa-project/alsa-utils/pull/91
|
||||||
|
Signed-off-by: Chao Song <chao.song@linux.intel.com>
|
||||||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
---
|
||||||
|
topology/pre-process-dapm.c | 5 +++++
|
||||||
|
topology/pre-process-object.c | 5 +++++
|
||||||
|
2 files changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/topology/pre-process-dapm.c b/topology/pre-process-dapm.c
|
||||||
|
index 450ca71..dbaf2f1 100644
|
||||||
|
--- a/topology/pre-process-dapm.c
|
||||||
|
+++ b/topology/pre-process-dapm.c
|
||||||
|
@@ -146,6 +146,11 @@ static int tplg_pp_get_widget_name(struct tplg_pre_processor *tplg_pp,
|
||||||
|
|
||||||
|
/* get class name */
|
||||||
|
args = strchr(string, '.');
|
||||||
|
+ if (!args) {
|
||||||
|
+ SNDERR("Error getting class name for %s\n", string);
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
class_name = calloc(1, strlen(string) - strlen(args) + 1);
|
||||||
|
if (!class_name)
|
||||||
|
return -ENOMEM;
|
||||||
|
diff --git a/topology/pre-process-object.c b/topology/pre-process-object.c
|
||||||
|
index 09aa375..ac8caec 100644
|
||||||
|
--- a/topology/pre-process-object.c
|
||||||
|
+++ b/topology/pre-process-object.c
|
||||||
|
@@ -492,6 +492,11 @@ static int tplg_pp_add_object_tuple_section(struct tplg_pre_processor *tplg_pp,
|
||||||
|
}
|
||||||
|
|
||||||
|
type = strchr(token_ref, '.');
|
||||||
|
+ if(!type) {
|
||||||
|
+ SNDERR("Error getting type for %s\n", token_ref);
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
token = calloc(1, strlen(token_ref) - strlen(type) + 1);
|
||||||
|
if (!token)
|
||||||
|
return -ENOMEM;
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
|
From d6d566a9eebb63dd9d1351b07d385d39cdc33beb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
Date: Fri, 4 Jun 2021 09:53:56 +0200
|
||||||
|
Subject: [PATCH 3/9] alsactl: return error value in dump_config_tree()
|
||||||
|
|
||||||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
---
|
||||||
|
alsactl/alsactl.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/alsamixer/alsamixer.1 b/alsamixer/alsamixer.1
|
diff --git a/alsactl/alsactl.c b/alsactl/alsactl.c
|
||||||
index 8d34680..2d711cf 100644
|
index a011284..05738fb 100644
|
||||||
--- a/alsamixer/alsamixer.1
|
--- a/alsactl/alsactl.c
|
||||||
+++ b/alsamixer/alsamixer.1
|
+++ b/alsactl/alsactl.c
|
||||||
@@ -34,7 +34,7 @@ Toggle the using of colors.
|
@@ -170,7 +170,7 @@ static int dump_config_tree(snd_config_t *top)
|
||||||
|
return err;
|
||||||
|
err = snd_config_save(top, out);
|
||||||
|
snd_output_close(out);
|
||||||
|
- return 0;
|
||||||
|
+ return err;
|
||||||
|
}
|
||||||
|
|
||||||
.SH MIXER VIEWS
|
static int dump_state(const char *file)
|
||||||
|
|
||||||
-The top-left corner of \fBalsamixer\fP is the are to show some basic
|
|
||||||
+The top-left corner of \fBalsamixer\fP shows some basic
|
|
||||||
information: the card name, the mixer chip name, the current view
|
|
||||||
mode and the currently selected mixer item.
|
|
||||||
When the mixer item is switched off, \fI[Off]\fP is displayed in its
|
|
||||||
--
|
--
|
||||||
2.29.2
|
2.30.2
|
||||||
|
|
||||||
From 986a1bd3d2eebd41a2925969826fca870b2cd330 Mon Sep 17 00:00:00 2001
|
|
||||||
|
From 511dd7a597735048f3883ef7883adf853ac2de4a Mon Sep 17 00:00:00 2001
|
||||||
From: Jaroslav Kysela <perex@perex.cz>
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
Date: Fri, 23 Oct 2020 12:05:56 +0200
|
Date: Fri, 4 Jun 2021 09:56:20 +0200
|
||||||
Subject: [PATCH 06/14] aplay: cosmetic code fix in xrun()
|
Subject: [PATCH 4/9] alsactl: init() - return error value from
|
||||||
|
snd_card_iterator_sinit() call
|
||||||
|
|
||||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
---
|
---
|
||||||
aplay/aplay.c | 3 ++-
|
alsactl/init_parse.c | 2 ++
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
diff --git a/alsactl/init_parse.c b/alsactl/init_parse.c
|
||||||
index a27220d..ae60988 100644
|
index 9d0f473..e439de7 100644
|
||||||
--- a/aplay/aplay.c
|
--- a/alsactl/init_parse.c
|
||||||
+++ b/aplay/aplay.c
|
+++ b/alsactl/init_parse.c
|
||||||
@@ -1676,7 +1676,8 @@ static void xrun(void)
|
@@ -1751,6 +1751,8 @@ int init(const char *cfgdir, const char *filename, int flags, const char *cardna
|
||||||
prg_exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
return; /* ok, data should be accepted again */
|
|
||||||
- } if (snd_pcm_status_get_state(status) == SND_PCM_STATE_DRAINING) {
|
|
||||||
+ }
|
|
||||||
+ if (snd_pcm_status_get_state(status) == SND_PCM_STATE_DRAINING) {
|
|
||||||
if (verbose) {
|
|
||||||
fprintf(stderr, _("Status(DRAINING):\n"));
|
|
||||||
snd_pcm_status_dump(status, log);
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
||||||
|
sysfs_init();
|
||||||
From c1b92db5ef01311e5fc983f3134caa00826d0c2d Mon Sep 17 00:00:00 2001
|
err = snd_card_iterator_sinit(&iter, cardname);
|
||||||
From: Jaroslav Kysela <perex@perex.cz>
|
|
||||||
Date: Sun, 8 Nov 2020 19:11:12 +0100
|
|
||||||
Subject: [PATCH 07/14] aplay: fix the CPU busy loop in the pause handler
|
|
||||||
|
|
||||||
Use the standard poll mechanism to ensure that there's
|
|
||||||
something in the input to avoid busy loop on the file
|
|
||||||
descriptor with the non-block mode set.
|
|
||||||
|
|
||||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
||||||
---
|
|
||||||
aplay/aplay.c | 17 +++++++++++++++--
|
|
||||||
1 file changed, 15 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
|
||||||
index ae60988..d385da2 100644
|
|
||||||
--- a/aplay/aplay.c
|
|
||||||
+++ b/aplay/aplay.c
|
|
||||||
@@ -1553,6 +1553,19 @@ static void done_stdin(void)
|
|
||||||
tcsetattr(fileno(stdin), TCSANOW, &term);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static char wait_for_input(void)
|
|
||||||
+{
|
|
||||||
+ struct pollfd pfd;
|
|
||||||
+ unsigned char b;
|
|
||||||
+
|
|
||||||
+ do {
|
|
||||||
+ pfd.fd = fileno(stdin);
|
|
||||||
+ pfd.events = POLLIN;
|
|
||||||
+ poll(&pfd, 1, -1);
|
|
||||||
+ } while (read(fileno(stdin), &b, 1) != 1);
|
|
||||||
+ return b;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void do_pause(void)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
@@ -1571,7 +1584,7 @@ static void do_pause(void)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (1) {
|
|
||||||
- while (read(fileno(stdin), &b, 1) != 1);
|
|
||||||
+ b = wait_for_input();
|
|
||||||
if (b == ' ' || b == '\r') {
|
|
||||||
while (read(fileno(stdin), &b, 1) == 1);
|
|
||||||
if (snd_pcm_state(handle) == SND_PCM_STATE_SUSPENDED)
|
|
||||||
@@ -1596,7 +1609,7 @@ static void check_stdin(void)
|
|
||||||
while (read(fileno(stdin), &b, 1) == 1);
|
|
||||||
fprintf(stderr, _("\r=== PAUSE === "));
|
|
||||||
fflush(stderr);
|
|
||||||
- do_pause();
|
|
||||||
+ do_pause();
|
|
||||||
fprintf(stderr, " \r");
|
|
||||||
fflush(stderr);
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
||||||
|
|
||||||
From 5812f37d877c12bc594b9ffddc493d305991963a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Takashi Iwai <tiwai@suse.de>
|
|
||||||
Date: Wed, 9 Dec 2020 18:35:49 +0100
|
|
||||||
Subject: [PATCH 08/14] alsa-info: Add lsusb and stream outputs
|
|
||||||
|
|
||||||
We need more detailed information for USB-audio devices, at least the
|
|
||||||
lsusb -v output and the contents of stream* proc files.
|
|
||||||
Let's add them to alsa-info.sh output.
|
|
||||||
|
|
||||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
||||||
---
|
|
||||||
alsa-info/alsa-info.sh | 33 +++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 33 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/alsa-info/alsa-info.sh b/alsa-info/alsa-info.sh
|
|
||||||
index f179bfa..3871b97 100755
|
|
||||||
--- a/alsa-info/alsa-info.sh
|
|
||||||
+++ b/alsa-info/alsa-info.sh
|
|
||||||
@@ -476,6 +476,18 @@ cat /proc/asound/card*/codec\#* > $TEMPDIR/alsa-hda-intel.tmp 2> /dev/null
|
|
||||||
cat /proc/asound/card*/codec97\#0/ac97\#0-0 > $TEMPDIR/alsa-ac97.tmp 2> /dev/null
|
|
||||||
cat /proc/asound/card*/codec97\#0/ac97\#0-0+regs > $TEMPDIR/alsa-ac97-regs.tmp 2> /dev/null
|
|
||||||
|
|
||||||
+#Check for USB descriptors
|
|
||||||
+if [ -x /usr/bin/lsusb ]; then
|
|
||||||
+ for f in /proc/asound/card[0-9]*/usbbus; do
|
|
||||||
+ test -f "$f" || continue
|
|
||||||
+ id=$(sed 's@/@:@' $f)
|
|
||||||
+ lsusb -v -s $id >> $TEMPDIR/lsusb.tmp 2> /dev/null
|
|
||||||
+ done
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+#Check for USB stream setup
|
|
||||||
+cat /proc/asound/card*/stream[0-9]* > $TEMPDIR/alsa-usbstream.tmp 2> /dev/null
|
|
||||||
+
|
|
||||||
#Check for USB mixer setup
|
|
||||||
cat /proc/asound/card*/usbmixer > $TEMPDIR/alsa-usbmixer.tmp 2> /dev/null
|
|
||||||
|
|
||||||
@@ -649,6 +661,27 @@ if [ -s "$TEMPDIR/alsa-ac97.tmp" ]; then
|
|
||||||
echo "" >> $FILE
|
|
||||||
fi
|
|
||||||
|
|
||||||
+if [ -s "$TEMPDIR/lsusb.tmp" ]; then
|
|
||||||
+ echo "!!USB Descriptors" >> $FILE
|
|
||||||
+ echo "!!---------------" >> $FILE
|
|
||||||
+ echo "--startcollapse--" >> $FILE
|
|
||||||
+ cat $TEMPDIR/lsusb.tmp >> $FILE
|
|
||||||
+ echo "--endcollapse--" >> $FILE
|
|
||||||
+ echo "" >> $FILE
|
|
||||||
+ echo "" >> $FILE
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
+if [ -s "$TEMPDIR/lsusb.tmp" ]; then
|
|
||||||
+ echo "!!USB Stream information" >> $FILE
|
|
||||||
+ echo "!!----------------------" >> $FILE
|
|
||||||
+ echo "--startcollapse--" >> $FILE
|
|
||||||
+ echo "" >> $FILE
|
|
||||||
+ cat $TEMPDIR/alsa-usbstream.tmp >> $FILE
|
|
||||||
+ echo "--endcollapse--" >> $FILE
|
|
||||||
+ echo "" >> $FILE
|
|
||||||
+ echo "" >> $FILE
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
if [ -s "$TEMPDIR/alsa-usbmixer.tmp" ]; then
|
|
||||||
echo "!!USB Mixer information" >> $FILE
|
|
||||||
echo "!!---------------------" >> $FILE
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
||||||
|
|
||||||
From 878e1a7c0f03233530e7675ae015aced069c971d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Takashi Iwai <tiwai@suse.de>
|
|
||||||
Date: Fri, 11 Dec 2020 23:41:59 +0100
|
|
||||||
Subject: [PATCH 10/14] alsactl: Fix double decrease of lock timeout
|
|
||||||
|
|
||||||
The state_lock() has a loop to wait for the lock file creation, and
|
|
||||||
the timeout value gets decremented twice mistakenly, which leads to a
|
|
||||||
half timeout (5 seconds) than expected 10 seconds. Fix it.
|
|
||||||
|
|
||||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
||||||
---
|
|
||||||
alsactl/lock.c | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/alsactl/lock.c b/alsactl/lock.c
|
|
||||||
index 4a48539..05f6e4d 100644
|
|
||||||
--- a/alsactl/lock.c
|
|
||||||
+++ b/alsactl/lock.c
|
|
||||||
@@ -63,7 +63,6 @@ static int state_lock_(const char *file, int lock, int timeout, int _fd)
|
|
||||||
if (fd < 0) {
|
|
||||||
if (errno == EBUSY || errno == EAGAIN) {
|
|
||||||
sleep(1);
|
|
||||||
- timeout--;
|
|
||||||
} else {
|
|
||||||
err = -errno;
|
|
||||||
goto out;
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
||||||
|
|
||||||
From c53f7cd03881092d5a61505d23ab8f920b7faf12 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Takashi Iwai <tiwai@suse.de>
|
|
||||||
Date: Fri, 11 Dec 2020 23:46:23 +0100
|
|
||||||
Subject: [PATCH 11/14] alsactl: Fix race at creating a lock file
|
|
||||||
|
|
||||||
A race at creating a lock file in state_lock() was discovered
|
|
||||||
recently: namely, between the first open(O_RDWR) and the second
|
|
||||||
open(O_RDWR|O_CREAT|O_EXCL) calls, another alsactl invocation may
|
|
||||||
already create a lock file, then the second open() will return EEXIST,
|
|
||||||
which isn't handled properly and treated as a fatal error.
|
|
||||||
|
|
||||||
In this patch, we check EEXIST case and try again open() with O_RDWR.
|
|
||||||
This must succeed usually, and if it fails, handle finally as the
|
|
||||||
fatal error.
|
|
||||||
|
|
||||||
BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1179904
|
|
||||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
||||||
---
|
|
||||||
alsactl/lock.c | 11 ++++++++---
|
|
||||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/alsactl/lock.c b/alsactl/lock.c
|
|
||||||
index 05f6e4d..5b47462 100644
|
|
||||||
--- a/alsactl/lock.c
|
|
||||||
+++ b/alsactl/lock.c
|
|
||||||
@@ -63,10 +63,15 @@ static int state_lock_(const char *file, int lock, int timeout, int _fd)
|
|
||||||
if (fd < 0) {
|
|
||||||
if (errno == EBUSY || errno == EAGAIN) {
|
|
||||||
sleep(1);
|
|
||||||
- } else {
|
|
||||||
- err = -errno;
|
|
||||||
- goto out;
|
|
||||||
+ continue;
|
|
||||||
}
|
|
||||||
+ if (errno == EEXIST) {
|
|
||||||
+ fd = open(nfile, O_RDWR);
|
|
||||||
+ if (fd >= 0)
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ err = -errno;
|
|
||||||
+ goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
||||||
|
|
||||||
From 12487b40b6e7230a003eb6e4333ee820d8578592 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Takashi Iwai <tiwai@suse.de>
|
|
||||||
Date: Fri, 11 Dec 2020 23:55:34 +0100
|
|
||||||
Subject: [PATCH 12/14] alsactl: Remove asound.state file check from
|
|
||||||
alsa-restore.service again
|
|
||||||
|
|
||||||
We added the check of asound.state file presence some time ago to
|
|
||||||
assure that alsactl gets called only if the state file is already
|
|
||||||
present. Since then, the situation has changed significantly:
|
|
||||||
e.g. now alsactl does initialize if the state file isn't present, and
|
|
||||||
the same alsa-restore.service is used to save the state. This means
|
|
||||||
that we should start this service no matter the state file exists at
|
|
||||||
the boot time or not. So, revert the old change again.
|
|
||||||
|
|
||||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
||||||
---
|
|
||||||
alsactl/alsa-restore.service.in | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in
|
|
||||||
index a84c2e8..80fd5fd 100644
|
|
||||||
--- a/alsactl/alsa-restore.service.in
|
|
||||||
+++ b/alsactl/alsa-restore.service.in
|
|
||||||
@@ -7,7 +7,6 @@
|
|
||||||
Description=Save/Restore Sound Card State
|
|
||||||
ConditionPathExists=!@daemonswitch@
|
|
||||||
ConditionPathExistsGlob=/dev/snd/control*
|
|
||||||
-ConditionPathExists=@asoundrcfile@
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
--
|
|
||||||
2.29.2
|
|
||||||
|
|
||||||
|
|
||||||
From 76bc37aeb77d51f995e223582d25335cd98b2eea Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jaroslav Kysela <perex@perex.cz>
|
|
||||||
Date: Sun, 3 Jan 2021 17:19:03 +0100
|
|
||||||
Subject: [PATCH 13/14] aplay: add test code for snd_pcm_status() to
|
|
||||||
--test-position
|
|
||||||
|
|
||||||
We need to test also snd_pcm_status() values.
|
|
||||||
|
|
||||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
||||||
---
|
|
||||||
aplay/aplay.c | 48 ++++++++++++++++++++++++++++++++++++++----------
|
|
||||||
1 file changed, 38 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
|
||||||
index d385da2..5a6d5c3 100644
|
|
||||||
--- a/aplay/aplay.c
|
|
||||||
+++ b/aplay/aplay.c
|
|
||||||
@@ -1953,22 +1953,38 @@ static void do_test_position(void)
|
|
||||||
static snd_pcm_sframes_t minavail, mindelay;
|
|
||||||
static snd_pcm_sframes_t badavail = 0, baddelay = 0;
|
|
||||||
snd_pcm_sframes_t outofrange;
|
|
||||||
- snd_pcm_sframes_t avail, delay;
|
|
||||||
+ snd_pcm_sframes_t avail, delay, savail, sdelay;
|
|
||||||
+ snd_pcm_status_t *status;
|
|
||||||
int err;
|
|
||||||
|
|
||||||
+ snd_pcm_status_alloca(&status);
|
|
||||||
err = snd_pcm_avail_delay(handle, &avail, &delay);
|
|
||||||
if (err < 0)
|
|
||||||
return;
|
|
||||||
+ err = snd_pcm_status(handle, status);
|
|
||||||
+ if (err < 0)
|
+ if (err < 0)
|
||||||
+ return;
|
+ goto out;
|
||||||
+ savail = snd_pcm_status_get_avail(status);
|
while (snd_card_iterator_next(&iter)) {
|
||||||
+ sdelay = snd_pcm_status_get_delay(status);
|
err = snd_card_clean_cfgdir(cfgdir, iter.card);
|
||||||
outofrange = (test_coef * (snd_pcm_sframes_t)buffer_frames) / 2;
|
if (err < 0) {
|
||||||
if (avail > outofrange || avail < -outofrange ||
|
|
||||||
delay > outofrange || delay < -outofrange) {
|
|
||||||
- badavail = avail; baddelay = delay;
|
|
||||||
- availsum = delaysum = samples = 0;
|
|
||||||
- maxavail = maxdelay = 0;
|
|
||||||
- minavail = mindelay = buffer_frames * 16;
|
|
||||||
- fprintf(stderr, _("Suspicious buffer position (%li total): "
|
|
||||||
- "avail = %li, delay = %li, buffer = %li\n"),
|
|
||||||
- ++counter, (long)avail, (long)delay, (long)buffer_frames);
|
|
||||||
+ badavail = avail; baddelay = delay;
|
|
||||||
+ availsum = delaysum = samples = 0;
|
|
||||||
+ maxavail = maxdelay = 0;
|
|
||||||
+ minavail = mindelay = buffer_frames * 16;
|
|
||||||
+ fprintf(stderr, _("Suspicious buffer position (%li total): "
|
|
||||||
+ "avail = %li, delay = %li, buffer = %li\n"),
|
|
||||||
+ ++counter, (long)avail, (long)delay, (long)buffer_frames);
|
|
||||||
+ } else if (savail > outofrange || savail < -outofrange ||
|
|
||||||
+ sdelay > outofrange || sdelay < -outofrange) {
|
|
||||||
+ badavail = savail; baddelay = sdelay;
|
|
||||||
+ availsum = delaysum = samples = 0;
|
|
||||||
+ maxavail = maxdelay = 0;
|
|
||||||
+ minavail = mindelay = buffer_frames * 16;
|
|
||||||
+ fprintf(stderr, _("Suspicious status buffer position (%li total): "
|
|
||||||
+ "avail = %li, delay = %li, buffer = %li\n"),
|
|
||||||
+ ++counter, (long)savail, (long)sdelay, (long)buffer_frames);
|
|
||||||
} else if (verbose) {
|
|
||||||
time(&now);
|
|
||||||
if (tmr == (time_t) -1) {
|
|
||||||
@@ -1979,19 +1995,27 @@ static void do_test_position(void)
|
|
||||||
}
|
|
||||||
if (avail > maxavail)
|
|
||||||
maxavail = avail;
|
|
||||||
+ if (savail > maxavail)
|
|
||||||
+ maxavail = savail;
|
|
||||||
if (delay > maxdelay)
|
|
||||||
maxdelay = delay;
|
|
||||||
+ if (sdelay > maxdelay)
|
|
||||||
+ maxdelay = sdelay;
|
|
||||||
if (avail < minavail)
|
|
||||||
minavail = avail;
|
|
||||||
+ if (savail < minavail)
|
|
||||||
+ minavail = savail;
|
|
||||||
if (delay < mindelay)
|
|
||||||
mindelay = delay;
|
|
||||||
+ if (sdelay < mindelay)
|
|
||||||
+ mindelay = sdelay;
|
|
||||||
availsum += avail;
|
|
||||||
delaysum += delay;
|
|
||||||
samples++;
|
|
||||||
- if (avail != 0 && now != tmr) {
|
|
||||||
+ if ((maxavail != 0 || maxdelay != 0) && now != tmr) {
|
|
||||||
fprintf(stderr, "BUFPOS: avg%li/%li "
|
|
||||||
"min%li/%li max%li/%li (%li) (%li:%li/%li)\n",
|
|
||||||
- (long)(availsum / samples),
|
|
||||||
+ (long)(availsum / samples),
|
|
||||||
(long)(delaysum / samples),
|
|
||||||
(long)minavail, (long)mindelay,
|
|
||||||
(long)maxavail, (long)maxdelay,
|
|
||||||
@@ -2000,6 +2024,10 @@ static void do_test_position(void)
|
|
||||||
tmr = now;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ if (verbose == 1) {
|
|
||||||
+ fprintf(stderr, _("Status(R/W) (standalone avail=%li delay=%li):\n"), (long)avail, (long)delay);
|
|
||||||
+ snd_pcm_status_dump(status, log);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
--
|
--
|
||||||
2.29.2
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
From 3980fe71c9795271639239ad8fa982a59de8ff1f Mon Sep 17 00:00:00 2001
|
From 2bc595e7bd9a9b8f8605104cfdb8f40a07c2655b Mon Sep 17 00:00:00 2001
|
||||||
From: Jaroslav Kysela <perex@perex.cz>
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
Date: Mon, 4 Jan 2021 12:13:03 +0100
|
Date: Fri, 4 Jun 2021 09:58:46 +0200
|
||||||
Subject: [PATCH 14/14] aplay: add avail > delay checks to --test-position
|
Subject: [PATCH 5/9] alsactl: check for error values from snd_config_get...()
|
||||||
|
|
||||||
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
---
|
---
|
||||||
aplay/aplay.c | 8 ++++++++
|
alsactl/state.c | 41 ++++++++++++++++++++++++++++-------------
|
||||||
1 file changed, 8 insertions(+)
|
1 file changed, 28 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
diff --git a/aplay/aplay.c b/aplay/aplay.c
|
diff --git a/alsactl/state.c b/alsactl/state.c
|
||||||
index 5a6d5c3..b75be6c 100644
|
index 44fda3f..b3a3f4d 100644
|
||||||
--- a/aplay/aplay.c
|
--- a/alsactl/state.c
|
||||||
+++ b/aplay/aplay.c
|
+++ b/alsactl/state.c
|
||||||
@@ -1985,6 +1985,14 @@ static void do_test_position(void)
|
@@ -655,13 +655,16 @@ static long config_iface(snd_config_t *n)
|
||||||
fprintf(stderr, _("Suspicious status buffer position (%li total): "
|
const char *str;
|
||||||
"avail = %li, delay = %li, buffer = %li\n"),
|
switch (snd_config_get_type(n)) {
|
||||||
++counter, (long)savail, (long)sdelay, (long)buffer_frames);
|
case SND_CONFIG_TYPE_INTEGER:
|
||||||
+ } else if (avail > delay) {
|
- snd_config_get_integer(n, &i);
|
||||||
+ fprintf(stderr, _("Suspicious buffer position avail > delay (%li total): "
|
+ if (snd_config_get_integer(n, &i) < 0)
|
||||||
+ "avail = %li, delay = %li\n"),
|
+ return -1;
|
||||||
+ ++counter, (long)avail, (long)delay);
|
return i;
|
||||||
+ } else if (savail > sdelay) {
|
case SND_CONFIG_TYPE_INTEGER64:
|
||||||
+ fprintf(stderr, _("Suspicious status buffer position avail > delay (%li total): "
|
- snd_config_get_integer64(n, &li);
|
||||||
+ "avail = %li, delay = %li\n"),
|
+ if (snd_config_get_integer64(n, &li) < 0)
|
||||||
+ ++counter, (long)savail, (long)sdelay);
|
+ return -1;
|
||||||
} else if (verbose) {
|
return li;
|
||||||
time(&now);
|
case SND_CONFIG_TYPE_STRING:
|
||||||
if (tmr == (time_t) -1) {
|
- snd_config_get_string(n, &str);
|
||||||
|
+ if (snd_config_get_string(n, &str) < 0)
|
||||||
|
+ return -1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -1;
|
||||||
|
@@ -681,17 +684,20 @@ static int config_bool(snd_config_t *n, int doit)
|
||||||
|
|
||||||
|
switch (snd_config_get_type(n)) {
|
||||||
|
case SND_CONFIG_TYPE_INTEGER:
|
||||||
|
- snd_config_get_integer(n, &val);
|
||||||
|
+ if (snd_config_get_integer(n, &val) < 0)
|
||||||
|
+ return -1;
|
||||||
|
if (val < 0 || val > 1)
|
||||||
|
return -1;
|
||||||
|
return val;
|
||||||
|
case SND_CONFIG_TYPE_INTEGER64:
|
||||||
|
- snd_config_get_integer64(n, &lval);
|
||||||
|
+ if (snd_config_get_integer64(n, &lval) < 0)
|
||||||
|
+ return -1;
|
||||||
|
if (lval < 0 || lval > 1)
|
||||||
|
return -1;
|
||||||
|
return (int) lval;
|
||||||
|
case SND_CONFIG_TYPE_STRING:
|
||||||
|
- snd_config_get_string(n, &str);
|
||||||
|
+ if (snd_config_get_string(n, &str) < 0)
|
||||||
|
+ return -1;
|
||||||
|
break;
|
||||||
|
case SND_CONFIG_TYPE_COMPOUND:
|
||||||
|
if (!force_restore || !doit)
|
||||||
|
@@ -718,13 +724,16 @@ static int config_enumerated(snd_config_t *n, snd_ctl_t *handle,
|
||||||
|
|
||||||
|
switch (snd_config_get_type(n)) {
|
||||||
|
case SND_CONFIG_TYPE_INTEGER:
|
||||||
|
- snd_config_get_integer(n, &val);
|
||||||
|
+ if (snd_config_get_integer(n, &val) < 0)
|
||||||
|
+ return -1;
|
||||||
|
return val;
|
||||||
|
case SND_CONFIG_TYPE_INTEGER64:
|
||||||
|
- snd_config_get_integer64(n, &lval);
|
||||||
|
+ if (snd_config_get_integer64(n, &lval) < 0)
|
||||||
|
+ return -1;
|
||||||
|
return (int) lval;
|
||||||
|
case SND_CONFIG_TYPE_STRING:
|
||||||
|
- snd_config_get_string(n, &str);
|
||||||
|
+ if (snd_config_get_string(n, &str) < 0)
|
||||||
|
+ return -1;
|
||||||
|
break;
|
||||||
|
case SND_CONFIG_TYPE_COMPOUND:
|
||||||
|
if (!force_restore || !doit)
|
||||||
|
@@ -1247,6 +1256,8 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
|
||||||
|
}
|
||||||
|
if (strcmp(fld, "iface") == 0) {
|
||||||
|
iface = (snd_ctl_elem_iface_t)config_iface(n);
|
||||||
|
+ if (iface < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(fld, "device") == 0) {
|
||||||
|
@@ -1254,7 +1265,8 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
|
||||||
|
cerror(doit, "control.%d.%s is invalid", numid, fld);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
- snd_config_get_integer(n, &device);
|
||||||
|
+ if (snd_config_get_integer(n, &device) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(fld, "subdevice") == 0) {
|
||||||
|
@@ -1262,7 +1274,8 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
|
||||||
|
cerror(doit, "control.%d.%s is invalid", numid, fld);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
- snd_config_get_integer(n, &subdevice);
|
||||||
|
+ if (snd_config_get_integer(n, &subdevice) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(fld, "name") == 0) {
|
||||||
|
@@ -1270,7 +1283,8 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
|
||||||
|
cerror(doit, "control.%d.%s is invalid", numid, fld);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
- snd_config_get_string(n, &name);
|
||||||
|
+ if (snd_config_get_string(n, &name) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(fld, "index") == 0) {
|
||||||
|
@@ -1278,7 +1292,8 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control,
|
||||||
|
cerror(doit, "control.%d.%s is invalid", numid, fld);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
- snd_config_get_integer(n, &index);
|
||||||
|
+ if (snd_config_get_integer(n, &index) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (strcmp(fld, "value") == 0) {
|
||||||
--
|
--
|
||||||
2.29.2
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
|
From 646d6ff094a82153db49af176cba3aacbde46cf6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
Date: Fri, 4 Jun 2021 10:04:50 +0200
|
||||||
|
Subject: [PATCH 6/9] =?UTF-8?q?alsactl:=20state=20-=20fix=20=E2=80=98item?=
|
||||||
|
=?UTF-8?q?=E2=80=99=20may=20be=20used=20uninitialized=20gcc=20warning?=
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
---
|
||||||
|
alsactl/state.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/alsactl/state.c b/alsactl/state.c
|
||||||
|
index b3a3f4d..9c75688 100644
|
||||||
|
--- a/alsactl/state.c
|
||||||
|
+++ b/alsactl/state.c
|
||||||
|
@@ -229,7 +229,7 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t
|
||||||
|
{
|
||||||
|
snd_ctl_elem_value_t *ctl;
|
||||||
|
snd_ctl_elem_info_t *info;
|
||||||
|
- snd_config_t *control, *comment, *item, *value;
|
||||||
|
+ snd_config_t *control, *comment, *item = NULL, *value;
|
||||||
|
const char *s;
|
||||||
|
char buf[256];
|
||||||
|
unsigned int idx;
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
|
From cd2f779b8d6439479b9802e9fd2c8af86f8702fb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
Date: Fri, 4 Jun 2021 10:08:18 +0200
|
||||||
|
Subject: [PATCH 7/9] alsactl: fix lock_fd unlock in load_configuration() -
|
||||||
|
error path
|
||||||
|
|
||||||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
---
|
||||||
|
alsactl/utils.c | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/alsactl/utils.c b/alsactl/utils.c
|
||||||
|
index 881b505..fd4a108 100644
|
||||||
|
--- a/alsactl/utils.c
|
||||||
|
+++ b/alsactl/utils.c
|
||||||
|
@@ -220,15 +220,17 @@ int load_configuration(const char *file, snd_config_t **top, int *open_failed)
|
||||||
|
}
|
||||||
|
err = snd_config_load(config, in);
|
||||||
|
snd_input_close(in);
|
||||||
|
- if (lock_fd >= 0)
|
||||||
|
- state_unlock(lock_fd, file);
|
||||||
|
if (err < 0) {
|
||||||
|
error("snd_config_load error: %s", snd_strerror(err));
|
||||||
|
out:
|
||||||
|
+ if (lock_fd >= 0)
|
||||||
|
+ state_unlock(lock_fd, file);
|
||||||
|
snd_config_delete(config);
|
||||||
|
snd_config_update_free_global();
|
||||||
|
return err;
|
||||||
|
} else {
|
||||||
|
+ if (lock_fd >= 0)
|
||||||
|
+ state_unlock(lock_fd, file);
|
||||||
|
*top = config;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
|
From 74ad91245f8257e242cf5b5b6b809f94321f197a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
Date: Fri, 4 Jun 2021 10:12:06 +0200
|
||||||
|
Subject: [PATCH 8/9] axfer: fix wrong calloc() item size in
|
||||||
|
allocate_containers()
|
||||||
|
|
||||||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
---
|
||||||
|
axfer/subcmd-transfer.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/axfer/subcmd-transfer.c b/axfer/subcmd-transfer.c
|
||||||
|
index 27d2cc5..839215a 100644
|
||||||
|
--- a/axfer/subcmd-transfer.c
|
||||||
|
+++ b/axfer/subcmd-transfer.c
|
||||||
|
@@ -155,7 +155,7 @@ static int allocate_containers(struct context *ctx, unsigned int count)
|
||||||
|
return -ENOMEM;
|
||||||
|
ctx->cntr_count = count;
|
||||||
|
|
||||||
|
- ctx->cntr_fds = calloc(count, sizeof(*ctx->cntrs));
|
||||||
|
+ ctx->cntr_fds = calloc(count, sizeof(*ctx->cntr_fds));
|
||||||
|
if (ctx->cntr_fds == NULL)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
|
||||||
|
From c58f981e1530557835461b17b92eac6c475e5f68 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
Date: Fri, 4 Jun 2021 10:19:22 +0200
|
||||||
|
Subject: [PATCH 9/9] topology: fix few coverity detected defects
|
||||||
|
|
||||||
|
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
||||||
|
---
|
||||||
|
topology/pre-process-dapm.c | 3 ++-
|
||||||
|
topology/pre-process-object.c | 15 ++++++++++-----
|
||||||
|
topology/pre-processor.c | 2 +-
|
||||||
|
3 files changed, 13 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/topology/pre-process-dapm.c b/topology/pre-process-dapm.c
|
||||||
|
index dbaf2f1..dc510e1 100644
|
||||||
|
--- a/topology/pre-process-dapm.c
|
||||||
|
+++ b/topology/pre-process-dapm.c
|
||||||
|
@@ -203,7 +203,8 @@ static int tplg_pp_get_widget_name(struct tplg_pre_processor *tplg_pp,
|
||||||
|
|
||||||
|
if (!args) {
|
||||||
|
SNDERR("insufficient arugments for widget %s\n", string);
|
||||||
|
- return -EINVAL;
|
||||||
|
+ ret = -EINVAL;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
remaining = strchr(args + 1, '.');
|
||||||
|
diff --git a/topology/pre-process-object.c b/topology/pre-process-object.c
|
||||||
|
index ac8caec..7565091 100644
|
||||||
|
--- a/topology/pre-process-object.c
|
||||||
|
+++ b/topology/pre-process-object.c
|
||||||
|
@@ -463,7 +463,8 @@ static snd_config_t *tplg_object_lookup_in_config(struct tplg_pre_processor *tpl
|
||||||
|
if (!config_id)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- snd_config_search(class, config_id, &obj_cfg);
|
||||||
|
+ if (snd_config_search(class, config_id, &obj_cfg) < 0)
|
||||||
|
+ return NULL;
|
||||||
|
free(config_id);
|
||||||
|
return obj_cfg;
|
||||||
|
}
|
||||||
|
@@ -704,11 +705,12 @@ static int tplg_add_object_data(struct tplg_pre_processor *tplg_pp, snd_config_t
|
||||||
|
|
||||||
|
ret = tplg_pp_add_object_tuple_section(tplg_pp, class_cfg, n, data_cfg_name,
|
||||||
|
token);
|
||||||
|
- free(data_cfg_name);
|
||||||
|
if (ret < 0) {
|
||||||
|
SNDERR("Failed to add data section %s\n", data_cfg_name);
|
||||||
|
+ free(data_cfg_name);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
+ free(data_cfg_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
@@ -1215,8 +1217,10 @@ static int tplg_construct_object_name(struct tplg_pre_processor *tplg_pp, snd_co
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* set class name as the name prefix for the object */
|
||||||
|
- snd_config_get_id(obj, &obj_id);
|
||||||
|
- snd_config_get_id(class_cfg, &class_id);
|
||||||
|
+ if (snd_config_get_id(obj, &obj_id) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
+ if (snd_config_get_id(class_cfg, &class_id) < 0)
|
||||||
|
+ return -EINVAL;
|
||||||
|
new_name = strdup(class_id);
|
||||||
|
if (!new_name)
|
||||||
|
return -ENOMEM;
|
||||||
|
@@ -1280,7 +1284,8 @@ static int tplg_construct_object_name(struct tplg_pre_processor *tplg_pp, snd_co
|
||||||
|
default:
|
||||||
|
SNDERR("Argument '%s' in object '%s.%s' is not an integer or a string\n",
|
||||||
|
s, class_id, obj_id);
|
||||||
|
- return -EINVAL;
|
||||||
|
+ ret = -EINVAL;
|
||||||
|
+ goto err;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* alloc and concat arg value to the name */
|
||||||
|
diff --git a/topology/pre-processor.c b/topology/pre-processor.c
|
||||||
|
index 0458c3c..442dcc4 100644
|
||||||
|
--- a/topology/pre-processor.c
|
||||||
|
+++ b/topology/pre-processor.c
|
||||||
|
@@ -183,7 +183,7 @@ int init_pre_precessor(struct tplg_pre_processor **tplg_pp, snd_output_type_t ty
|
||||||
|
|
||||||
|
_tplg_pp = calloc(1, sizeof(struct tplg_pre_processor));
|
||||||
|
if (!_tplg_pp)
|
||||||
|
- ret = -ENOMEM;
|
||||||
|
+ return -ENOMEM;
|
||||||
|
|
||||||
|
*tplg_pp = _tplg_pp;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.30.2
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
%define baseversion 1.2.4
|
%define baseversion 1.2.5
|
||||||
#define fixversion .2
|
#define fixversion .2
|
||||||
%global _hardened_build 1
|
%global _hardened_build 1
|
||||||
|
|
||||||
@ -192,6 +192,9 @@ fi
|
|||||||
%systemd_postun_with_restart alsa-state.service
|
%systemd_postun_with_restart alsa-state.service
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 3 2021 Jaroslav Kysela <perex@perex.cz> - 1.2.5-2
|
||||||
|
- Updated to 1.2.5
|
||||||
|
|
||||||
* Mon Jun 8 2020 Jaroslav Kysela <perex@perex.cz> - 1.2.4-2
|
* Mon Jun 8 2020 Jaroslav Kysela <perex@perex.cz> - 1.2.4-2
|
||||||
- Updated to 1.2.4
|
- Updated to 1.2.4
|
||||||
- Apply fixes from recent upstream
|
- Apply fixes from recent upstream
|
||||||
|
Loading…
Reference in New Issue
Block a user