Arun Raghavan pushed to branch master at PulseAudio / pulseaudio
Commits: 2e7c0ee8 by RODRIGUEZ Christophe at 2019-08-17T10:43:20Z raop: Fix infinite loop in raop-sink with UDP mode There are potentially unresolved issues around the EAGAIN logic, but this should prevent an infinite loop and log flood in the mean time. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/695 - - - - - 1 changed file: - src/modules/raop/raop-sink.c Changes: ===================================== src/modules/raop/raop-sink.c ===================================== @@ -388,6 +388,10 @@ static void thread_func(void *userdata) { ssize_t read; for (i = 0; i < nbfds; i++) { + if (pollfd->revents & POLLERR) { + /* one of UDP fds is in faulty state, may have been disconnected, this is fatal */ + goto fail; + } if (pollfd->revents & pollfd->events) { pollfd->revents = 0; read = pa_read(pollfd->fd, packet, sizeof(packet), NULL); @@ -431,7 +435,7 @@ static void thread_func(void *userdata) { /* Just try again. */ pa_log_debug("Failed to write data to FIFO (EINTR), retrying"); goto fail; - } else if (errno != EAGAIN) { + } else if (errno != EAGAIN && !u->oob) { /* Buffer is full, wait for POLLOUT. */ pollfd->events = POLLOUT; pollfd->revents = 0; View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/commit/2e7c0ee8f802bf5fbd457bd73c28816d54c29c7d -- View it on GitLab: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/commit/2e7c0ee8f802bf5fbd457bd73c28816d54c29c7d You're receiving this email because of your account on gitlab.freedesktop.org.
_______________________________________________ pulseaudio-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/pulseaudio-commits
