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)
|
add_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data)
|
||||||
{
|
{
|
||||||
GstLame *lame;
|
GstLame *lame;
|
||||||
gchar *value;
|
gchar *value = NULL;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
lame = GST_LAME (user_data);
|
lame = GST_LAME (user_data);
|
||||||
|
@ -616,16 +616,29 @@ add_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data)
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
break;
|
break;
|
||||||
default:
|
default:{
|
||||||
GST_WARNING_OBJECT (lame, "Couldn't write tag %s", tag);
|
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;
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tag_matches[i].tag_func (lame->lgf, value);
|
if (value != NULL && *value != '\0') {
|
||||||
|
GST_LOG_OBJECT (lame, "Adding tag %s:%s", tag, value);
|
||||||
if (gst_tag_get_type (tag) == G_TYPE_UINT) {
|
tag_matches[i].tag_func (lame->lgf, value);
|
||||||
g_free (value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_free (value);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue