mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
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 ) https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/445
This commit is contained in:
parent
0cdb3aa9b3
commit
4bc906e87e
1 changed files with 5 additions and 1 deletions
|
@ -1421,8 +1421,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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue