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
This commit is contained in:
parent
e83660bbd6
commit
c71e9d5b51
|
@ -493,6 +493,14 @@ static void read_callback(pa_stream *s, size_t length, void *userdata) {
|
||||||
return;
|
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 > 0);
|
||||||
assert(length % sizeof(float) == 0);
|
assert(length % sizeof(float) == 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue