gstd3d11window: fix memory leak
authorWang Chuan <jdyaomo@gmail.com>
Mon, 10 Apr 2023 09:31:29 +0000 (17:31 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 10 Apr 2023 15:33:44 +0000 (15:33 +0000)
GstStructure may leak when using external HWND

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4382>

subprojects/gst-plugins-bad/sys/d3d11/gstd3d11window_win32.cpp

index 5896f7f..6d475bc 100644 (file)
@@ -222,6 +222,7 @@ gst_d3d11_window_win32_prepare (GstD3D11Window * window, guint display_width,
 
   hwnd = (HWND) window->external_handle;
   if (!IsWindow (hwnd)) {
+    gst_structure_free (config);
     GST_ERROR_OBJECT (self, "Invalid window handle");
     g_set_error (error, GST_RESOURCE_ERROR, GST_RESOURCE_ERROR_FAILED,
         "Invalid window handle");
@@ -234,6 +235,7 @@ gst_d3d11_window_win32_prepare (GstD3D11Window * window, guint display_width,
   GST_DEBUG_OBJECT (self, "Preparing external handle");
   ret = gst_d3d11_window_win32_set_external_handle (self);
   if (ret != GST_FLOW_OK) {
+    gst_structure_free (config);
     if (ret == GST_FLOW_FLUSHING) {
       GST_WARNING_OBJECT (self, "Flushing");
       return GST_FLOW_FLUSHING;