From d0b7fc0d81abb208e7240b29fd6a58c26e0fd8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 17 Apr 2006 19:12:36 +0000 Subject: [PATCH] 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. --- ChangeLog | 9 +++++++++ ext/shout2/gstshout2.c | 12 +++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8dfb92cf20..bb5acb8fb2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-04-17 Tim-Philipp Müller + + * 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. + 2006-04-17 Jan Schmidt * gst/id3demux/id3tags.c: diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c index 522f8a3fd5..2fc3bdd41d 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; } }