summaryrefslogtreecommitdiffstats
path: root/src/modules/alsa
diff options
context:
space:
mode:
authorMarc-André Lureau <marc-andre.lureau@nokia.com>2009-02-18 21:35:18 +0200
committerLennart Poettering <lennart@poettering.net>2009-02-19 05:00:37 +0100
commit7c78c3f6589eeba9e2a4d7f7abbcaaeb6a89d833 (patch)
tree4b8303723e700ecaad76244d93d498456adf33b4 /src/modules/alsa
parent800489eea907815427d08659034ad69dbb56b5e6 (diff)
alsa-util: check if mixer_poll_descriptors_count() < 0
Diffstat (limited to 'src/modules/alsa')
-rw-r--r--src/modules/alsa/alsa-util.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c
index c53fd10d..a0907c4d 100644
--- a/src/modules/alsa/alsa-util.c
+++ b/src/modules/alsa/alsa-util.c
@@ -113,7 +113,7 @@ static void io_cb(pa_mainloop_api*a, pa_io_event* e, int fd, pa_io_event_flags_t
static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) {
struct pa_alsa_fdlist *fdl = userdata;
unsigned num_fds, i;
- int err;
+ int err, n;
struct pollfd *temp;
pa_assert(a);
@@ -122,7 +122,11 @@ static void defer_cb(pa_mainloop_api*a, pa_defer_event* e, void *userdata) {
a->defer_enable(fdl->defer, 0);
- num_fds = (unsigned) snd_mixer_poll_descriptors_count(fdl->mixer);
+ if ((n = snd_mixer_poll_descriptors_count(fdl->mixer)) < 0) {
+ pa_log("snd_mixer_poll_descriptors_count() failed: %s", snd_strerror(n));
+ return;
+ }
+ num_fds = (unsigned) n;
if (num_fds != fdl->num_fds) {
if (fdl->fds)