From 34e8d485cc75651f0f8e1362f62f2a7b28e01c4c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 14 Mar 2006 19:16:45 +0000 Subject: [PATCH] gst/gstformat.c: Don't segfault on invalid formats. Original commit message from CVS: * gst/gstformat.c: (gst_format_get_name), (gst_format_to_quark): Don't segfault on invalid formats. --- ChangeLog | 5 +++++ gst/gstformat.c | 22 ++++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7afca8fd54..e17dd108ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-03-14 Wim Taymans + + * gst/gstformat.c: (gst_format_get_name), (gst_format_to_quark): + Don't segfault on invalid formats. + 2006-03-14 Tim-Philipp Müller * libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times): diff --git a/gst/gstformat.c b/gst/gstformat.c index 4153678fa7..3d0acadc2a 100644 --- a/gst/gstformat.c +++ b/gst/gstformat.c @@ -81,16 +81,21 @@ _gst_format_initialize (void) * * Get a printable name for the given format. Do not modify or free. * - * Returns: a reference to the static name of the format. + * Returns: a reference to the static name of the format or NULL if + * the format is unknown. */ const gchar * gst_format_get_name (GstFormat format) { const GstFormatDefinition *def; + const gchar *result; - def = gst_format_get_details (format); + if ((def = gst_format_get_details (format)) != NULL) + result = def->nick; + else + result = NULL; - return def->nick; + return result; } /** @@ -99,16 +104,21 @@ gst_format_get_name (GstFormat format) * * Get the unique quark for the given format. * - * Returns: the quark associated with the format + * Returns: the quark associated with the format or 0 if the format + * is unknown. */ GQuark gst_format_to_quark (GstFormat format) { const GstFormatDefinition *def; + GQuark result; - def = gst_format_get_details (format); + if ((def = gst_format_get_details (format)) != NULL) + result = def->quark; + else + result = 0; - return def->quark; + return result; } /**