Commit 7de5af41 authored by Kristofer Bjorkstrom's avatar Kristofer Bjorkstrom Committed by Tim-Philipp Müller

rtspconnection: Fix GError set over the top of a previous GError

The function fill_bytes could sometimes return a value greater than zero
and in the same time set the GError.

Function read_bytes calls fill_bytes in a while loop. In the special
case above it would call fill_bytes with error already set.
Thus resulting in "GError set over the top of a previous GError".

Solved this by clearing GError when return value is greater than zero.
Actions are taken depending on error type by caller of read_bytes. Eg.
with EWOULDBLOCK gst_rtsp_source_dispatch_read will try to read the
missing bytes again (GST_RTSP_EINTR )

#445
parent 728a09d4
......@@ -1276,8 +1276,12 @@ fill_bytes (GstRTSPConnection * conn, guint8 * buffer, guint size,
/* try to read more bytes */
r = fill_raw_bytes (conn, in, sizeof (in), block, err);
if (r <= 0) {
if (out == 0)
if (out == 0) {
out = r;
} else {
/* we have some data ignore error */
g_clear_error (err);
}
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment