Use gst_element_class_set_metadata when passing dynamic strings

gst_element_class_set_metadata is meant to only be used with
static or inlined strings, which isn't the case for the 2 elements
here resulting in use-after-free later on.

https://gstreamer.freedesktop.org/documentation/gstreamer/gstelement.html?gi-language=c#gst_element_class_set_static_metadata

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/622>
This commit is contained in:
Jordan Petridis 2020-06-11 20:39:33 +03:00
parent f8196e06d5
commit 3e2420361a
2 changed files with 2 additions and 2 deletions

View file

@ -459,7 +459,7 @@ gst_qt_mux_base_init (gpointer g_class)
longname = g_strdup_printf ("%s Muxer", params->prop->long_name);
description = g_strdup_printf ("Multiplex audio and video into a %s file",
params->prop->long_name);
gst_element_class_set_static_metadata (element_class, longname,
gst_element_class_set_metadata (element_class, longname,
"Codec/Muxer", description,
"Thiago Sousa Santos <thiagoss@embedded.ufcg.edu.br>");
g_free (longname);

View file

@ -1050,7 +1050,7 @@ gst_v4l2_video_dec_subclass_init (gpointer g_class, gpointer data)
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
cdata->src_caps));
gst_element_class_set_static_metadata (element_class, cdata->longname,
gst_element_class_set_metadata (element_class, cdata->longname,
"Codec/Decoder/Video/Hardware", cdata->description,
"Nicolas Dufresne <nicolas.dufresne@collabora.com>");