xvimagesink: Don't leak temporary
authorJan Schmidt <jan@centricular.com>
Fri, 30 Sep 2022 18:47:31 +0000 (04:47 +1000)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 3 Oct 2022 17:30:51 +0000 (17:30 +0000)
Use a stack variable instead of a temporarily
malloced variable that wasn't being freed
properly. Fixes a small leak of a GstXvTouchDevice

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

subprojects/gst-plugins-base/sys/xvimage/xvcontext.c

index a67194c..8579709 100644 (file)
@@ -1141,7 +1141,7 @@ gst_xwindow_select_touch_events (GstXvContext * context, GstXWindow * window)
   /* Find suitable touch screen devices, and select touch events for each */
   for (i = 0; i < ndevices; i++) {
     XIEventMask mask_data;
-    GstXvTouchDevice temp, *device;
+    GstXvTouchDevice temp;
     gboolean has_touch = FALSE;
 
     if (devices[i].use != XISlavePointer)
@@ -1186,11 +1186,11 @@ gst_xwindow_select_touch_events (GstXvContext * context, GstXWindow * window)
               "pressure-sensitive (abs)" : "pressure-sensitive (rel)"),
           temp.id, temp.name);
 
-      device = g_new (GstXvTouchDevice, 1);
-      *device = temp;
-      device->name = g_strdup (device->name);
+      GstXvTouchDevice device = temp;
+      device.name = g_strdup (temp.name);
+
       window->touch_devices =
-          g_array_append_vals (window->touch_devices, device, 1);
+          g_array_append_val (window->touch_devices, device);
 
       mask_data.deviceid = temp.id;
       mask_data.mask_len = mask_len;