From d0b7fc0d81abb208e7240b29fd6a58c26e0fd8f4 Mon Sep 17 00:00:00 2001 From: Tim-Philipp Müller Date: Mon, 17 Apr 2006 19:12:36 +0000 Subject: ext/shout2/gstshout2.c: Don't crash in case the connection to the server fails: don't set pointer to NULL by assignin... Original commit message from CVS: * ext/shout2/gstshout2.c: (gst_shout2send_render): Don't crash in case the connection to the server fails: don't set pointer to NULL by assigning FALSE; error out properly by using GST_ELEMENT_ERROR and returning GST_FLOW_ERROR (fixes #338636). Lastly, free connection before resetting the pointer. --- ext/shout2/gstshout2.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'ext/shout2') diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c index 522f8a3f..2fc3bdd4 100644 --- a/ext/shout2/gstshout2.c +++ b/ext/shout2/gstshout2.c @@ -384,10 +384,16 @@ gst_shout2send_render (GstBaseSink * sink, GstBuffer * buf) shout2send->started = TRUE; } else { - GST_ERROR ("Couldn't connect to server: %s", + GST_ERROR_OBJECT (shout2send, "Couldn't connect to server: %s", shout_get_error (shout2send->conn)); - shout2send->conn = FALSE; - + GST_ELEMENT_ERROR (shout2send, RESOURCE, OPEN_WRITE, + (NULL), GST_ERROR_SYSTEM); + g_signal_emit (G_OBJECT (shout2send), + gst_shout2send_signals[SIGNAL_CONNECTION_PROBLEM], 0, + shout_get_errno (shout2send->conn)); + shout_free (shout2send->conn); + shout2send->conn = NULL; + return GST_FLOW_ERROR; } } -- cgit