mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 04:31:06 +00:00
ext/lame/gstlame.c: don't pass an uninitialised string pointer to lame if we don't know how to handle the tag type, a...
Original commit message from CVS: * ext/lame/gstlame.c: (add_one_tag): Fix handling of GST_TAG_DATE (#311679), don't pass an uninitialised string pointer to lame if we don't know how to handle the tag type, and fix minor memory leak.
This commit is contained in:
parent
28d6fa1937
commit
1bea0573bb
1 changed files with 20 additions and 7 deletions
|
@ -580,7 +580,7 @@ static void
|
|||
add_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data)
|
||||
{
|
||||
GstLame *lame;
|
||||
gchar *value;
|
||||
gchar *value = NULL;
|
||||
int i = 0;
|
||||
|
||||
lame = GST_LAME (user_data);
|
||||
|
@ -616,16 +616,29 @@ add_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data)
|
|||
return;
|
||||
};
|
||||
break;
|
||||
default:
|
||||
GST_WARNING_OBJECT (lame, "Couldn't write tag %s", tag);
|
||||
default:{
|
||||
if (strcmp (tag, GST_TAG_DATE) == 0) {
|
||||
GDate *date = NULL;
|
||||
|
||||
if (!gst_tag_list_get_date (list, tag, &date) || date == NULL) {
|
||||
GST_WARNING_OBJECT (lame, "Error reading \"%s\" tag value", tag);
|
||||
} else {
|
||||
value = g_strdup_printf ("%u", g_date_get_year (date));
|
||||
g_date_free (date);
|
||||
}
|
||||
} else {
|
||||
GST_WARNING_OBJECT (lame, "Couldn't write tag %s", tag);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
tag_matches[i].tag_func (lame->lgf, value);
|
||||
|
||||
if (gst_tag_get_type (tag) == G_TYPE_UINT) {
|
||||
g_free (value);
|
||||
if (value != NULL && *value != '\0') {
|
||||
GST_LOG_OBJECT (lame, "Adding tag %s:%s", tag, value);
|
||||
tag_matches[i].tag_func (lame->lgf, value);
|
||||
}
|
||||
|
||||
g_free (value);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Reference in a new issue