diff --git a/ChangeLog b/ChangeLog index a9ffc5fa37..176efd2109 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-01-04 Wim Taymans + + * gst/gstpad.c: (fixate_value): + Don't crash when trying to fixate and empty list. + Fixes #506643. + 2008-01-03 Sebastian Dröge * docs/faq/gst-uninstalled: diff --git a/gst/gstpad.c b/gst/gstpad.c index 1dca9ec112..eaac96892e 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2120,7 +2120,12 @@ fixate_value (GValue * dest, const GValue * src) } else if (G_VALUE_TYPE (src) == GST_TYPE_LIST) { GValue temp = { 0 }; + /* list could be empty */ + if (gst_value_list_get_size (src) <= 0) + return FALSE; + gst_value_init_and_copy (&temp, gst_value_list_get_value (src, 0)); + if (!fixate_value (dest, &temp)) gst_value_init_and_copy (dest, &temp); g_value_unset (&temp);