diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 83fa674b7dcd..090ad26ffcae 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,16 @@ +2017-12-03 Carlos Garcia Campos + + [GStreamer] GstPad leaked in WebKitTextCombiner + https://bugs.webkit.org/show_bug.cgi?id=180314 + + Reviewed by Michael Catanzaro. + + gst_element_get_static_pad() returns a full reference that si never freed, because gst_ghost_pad_new doesn't + take the ownership of the given pad. + + * platform/graphics/gstreamer/TextCombinerGStreamer.cpp: + (webkit_text_combiner_init): + 2017-12-03 Carlos Garcia Campos [GStreamer] GstCaps leaked in MediaPlayerPrivateGStreamer::createGSTPlayBin diff --git a/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp index 02de1e8bd7a7..4d33329d131f 100644 --- a/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp @@ -24,9 +24,11 @@ */ #include "config.h" +#include "TextCombinerGStreamer.h" + #if ENABLE(VIDEO) && USE(GSTREAMER) && ENABLE(VIDEO_TRACK) -#include "TextCombinerGStreamer.h" +#include "GRefPtrGStreamer.h" static GstStaticPadTemplate sinkTemplate = GST_STATIC_PAD_TEMPLATE("sink_%u", GST_PAD_SINK, GST_PAD_REQUEST, @@ -83,10 +85,10 @@ static void webkit_text_combiner_init(WebKitTextCombiner* combiner) UNUSED_PARAM(ret); ASSERT(ret); - GstPad* pad = gst_element_get_static_pad(combiner->funnel, "src"); + GRefPtr pad = adoptGRef(gst_element_get_static_pad(combiner->funnel, "src")); ASSERT(pad); - ret = gst_element_add_pad(GST_ELEMENT(combiner), gst_ghost_pad_new("src", pad)); + ret = gst_element_add_pad(GST_ELEMENT(combiner), gst_ghost_pad_new("src", pad.get())); ASSERT(ret); }