From 7fc02489e3a5f215890db920fe5db3cada3989fa Mon Sep 17 00:00:00 2001 From: Torsten Schoenfeld Date: Mon, 28 Aug 2006 08:35:31 +0000 Subject: [PATCH] Check for NULL before _reffing the bus. Fixes #353122. Original commit message from CVS: Patch by: Torsten Schoenfeld * gst/gstelement.c: (gst_element_get_bus): * tests/check/gst/gstelement.c: (GST_START_TEST): Check for NULL before _reffing the bus. Fixes #353122. --- ChangeLog | 8 ++++++++ gst/gstelement.c | 4 ++-- tests/check/gst/gstelement.c | 5 +++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2c9e1fbdb6..ffa9c236e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-08-28 Wim Taymans + + Patch by: Torsten Schoenfeld + + * gst/gstelement.c: (gst_element_get_bus): + * tests/check/gst/gstelement.c: (GST_START_TEST): + Check for NULL before _reffing the bus. Fixes #353122. + 2006-08-25 Tim-Philipp Müller * docs/manual/basics-bus.xml: diff --git a/gst/gstelement.c b/gst/gstelement.c index 42a3b7c20a..25984d518f 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -2695,8 +2695,8 @@ gst_element_get_bus (GstElement * element) g_return_val_if_fail (GST_IS_ELEMENT (element), result); GST_OBJECT_LOCK (element); - result = GST_ELEMENT_BUS (element); - gst_object_ref (result); + if ((result = GST_ELEMENT_BUS (element))) + gst_object_ref (result); GST_OBJECT_UNLOCK (element); GST_DEBUG_OBJECT (element, "got bus %" GST_PTR_FORMAT, result); diff --git a/tests/check/gst/gstelement.c b/tests/check/gst/gstelement.c index 9ff576dfd6..22de7dd546 100644 --- a/tests/check/gst/gstelement.c +++ b/tests/check/gst/gstelement.c @@ -82,9 +82,14 @@ GST_END_TEST; GST_START_TEST (test_error_no_bus) { GstElement *e; + GstBus *bus; e = gst_element_factory_make ("fakesrc", "source"); + /* get the bus, should be NULL */ + bus = gst_element_get_bus (e); + fail_if (bus != NULL); + /* I don't want errors shown */ gst_debug_set_default_threshold (GST_LEVEL_NONE);