[pulseaudio-commits] src/mainwindow.cc

Tanu Kaskinen tanuk at kemper.freedesktop.org
Tue Oct 28 02:33:24 PDT 2014


 src/mainwindow.cc |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit c71e9d5b516a16fc7f31c59bfc8dc75497136d69
Author: Christer Stenbrenden <christer at uggwar.net>
Date:   Wed Oct 22 20:38:21 2014 -0300

    Don't crash if pa_stream_peek returns NULL
    
    pa_stream_peek can return NULL if either the buffer is empty or if it
    has a hole. In either case we need to avoid derefencing the data
    pointer. Additionally, if there is a hole, we need to call pa_stream_drop,
    if the buffer is empty we should not call it.
    
    BugLink: https://bugs.debian.org/735898

diff --git a/src/mainwindow.cc b/src/mainwindow.cc
index 5d205fb..ee288e8 100644
--- a/src/mainwindow.cc
+++ b/src/mainwindow.cc
@@ -493,6 +493,14 @@ static void read_callback(pa_stream *s, size_t length, void *userdata) {
         return;
     }
 
+    if (!data) {
+        /* NULL data means either a hole or empty buffer.
+         * Only drop the stream when there is a hole (length > 0) */
+        if (length)
+            pa_stream_drop(s);
+        return;
+    }
+
     assert(length > 0);
     assert(length % sizeof(float) == 0);
 



More information about the pulseaudio-commits mailing list