Skip to content

kms/impl-device-atomic: Fix blob_ids array leak

release_blob_ids() only destroys the DRM property blobs, but does not free the array they were stored in.

==408596== 17,280 bytes in 432 blocks are definitely lost in loss record 91,695 of 91,981
==408596==    at 0x4839809: malloc (vg_replace_malloc.c:307)
==408596==    by 0x4D34120: g_malloc (gmem.c:106)
==408596==    by 0x4D4C220: g_slice_alloc (gslice.c:1069)
==408596==    by 0x4CFBC1C: g_array_sized_new (garray.c:265)
==408596==    by 0x59F0169: meta_kms_impl_device_atomic_process_update (meta-kms-impl-device-atomic.c:858)
==408596==    by 0x59F7789: meta_kms_process_update_in_impl (meta-kms.c:248)
==408596==    by 0x59F7789: meta_kms_run_impl_task_sync (meta-kms.c:404)
==408596==    by 0x59F7789: meta_kms_post_pending_update_sync (meta-kms.c:274)
==408596==    by 0x59F933C: meta_onscreen_native_swap_buffers_with_damage (meta-onscreen-native.c:1116)
==408596==    by 0x5FAFBEA: cogl_onscreen_swap_buffers_with_damage (cogl-onscreen.c:324)
==408596==    by 0x57F97AC: swap_framebuffer (clutter-stage-cogl.c:301)
==408596==    by 0x57F9F4D: clutter_stage_cogl_redraw_view_primary (clutter-stage-cogl.c:672)
==408596==    by 0x57F9F4D: clutter_stage_cogl_redraw_view (clutter-stage-cogl.c:741)
==408596==    by 0x57DE448: handle_frame_clock_frame (clutter-stage-view.c:1108)
==408596==    by 0x57AC260: clutter_frame_clock_dispatch (clutter-frame-clock.c:435)
==408596==    by 0x57AC260: frame_clock_source_dispatch (clutter-frame-clock.c:475)
==408596==    by 0x4D2E26C: g_main_dispatch (gmain.c:3337)
==408596==    by 0x4D2E26C: g_main_context_dispatch (gmain.c:4055)
==408596==    by 0x4D2E4F7: g_main_context_iterate.constprop.0 (gmain.c:4131)
==408596==    by 0x4D2E7E2: g_main_loop_run (gmain.c:4329)
==408596==    by 0x59639AD: meta_run (main.c:724)
==408596==    by 0x4027FC: main (main.c:507)
==408596== 
==408596== 22,440 bytes in 561 blocks are definitely lost in loss record 91,765 of 91,981
==408596==    at 0x4839809: malloc (vg_replace_malloc.c:307)
==408596==    by 0x4D34120: g_malloc (gmem.c:106)
==408596==    by 0x4D4C220: g_slice_alloc (gslice.c:1069)
==408596==    by 0x4CFBC1C: g_array_sized_new (garray.c:265)
==408596==    by 0x59F0169: meta_kms_impl_device_atomic_process_update (meta-kms-impl-device-atomic.c:858)
==408596==    by 0x59F7789: meta_kms_process_update_in_impl (meta-kms.c:248)
==408596==    by 0x59F7789: meta_kms_run_impl_task_sync (meta-kms.c:404)
==408596==    by 0x59F7789: meta_kms_post_pending_update_sync (meta-kms.c:274)
==408596==    by 0x59FAA8F: meta_onscreen_native_finish_frame (meta-onscreen-native.c:1317)
==408596==    by 0x57DE3EB: handle_frame_clock_frame (clutter-stage-view.c:1113)
==408596==    by 0x57AC260: clutter_frame_clock_dispatch (clutter-frame-clock.c:435)
==408596==    by 0x57AC260: frame_clock_source_dispatch (clutter-frame-clock.c:475)
==408596==    by 0x4D2E26C: g_main_dispatch (gmain.c:3337)
==408596==    by 0x4D2E26C: g_main_context_dispatch (gmain.c:4055)
==408596==    by 0x4D2E4F7: g_main_context_iterate.constprop.0 (gmain.c:4131)
==408596==    by 0x4D2E7E2: g_main_loop_run (gmain.c:4329)
==408596==    by 0x59639AD: meta_run (main.c:724)
==408596==    by 0x4027FC: main (main.c:507)

Merge request reports