xserver/hw/xfree86/drivers/modesetting
Sultan Alsawaf 35975d9054 modesetting: Fix memory leak on ms_do_pageflip error
The event allocation for ms_do_pageflip is leaked on error because callers
of ms_do_pageflip have no way of knowing whether or not a page flip
succeeded for any CRTCs. If a page flip succeeded for at least one CRTC,
then it's not safe for the caller to free the event allocation, and the
allocation won't be leaked. The event allocation is only leaked when not a
single CRTC's page flip succeeded.

Since all callers of ms_do_pageflip allocate the event pointer, and all of
them intentionally leak the event allocation when ms_do_pageflip returns an
error, just free the event pointer inside ms_do_pageflip when a page flip
doesn't succeed for any CRTC.

Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
2023-02-28 22:43:37 -08:00
..
dri2.c modesetting: Pass reference CRTC pointer to ms_do_pageflip 2023-02-28 22:43:37 -08:00
driver.c modesetting: Log whether atomic modesetting is enabled 2022-12-20 10:10:59 +01:00
driver.h modesetting: Pass reference CRTC pointer to ms_do_pageflip 2023-02-28 22:43:37 -08:00
drmmode_display.c modesetting: add support for TearFree page flips 2022-12-19 23:56:27 -08:00
drmmode_display.h modesetting: add support for TearFree page flips 2022-12-19 23:56:27 -08:00
dumb_bo.c modesetting: Include dix-config.h from dumb_bo.c 2015-05-12 08:02:11 -07:00
dumb_bo.h modesetting: Drop dumb_bo::map_count field and dead unmap code. 2014-12-11 11:26:19 -08:00
meson.build xfree86: Link fb statically 2019-07-23 14:24:00 -04:00
modesetting.man modesetting: Document the "Atomic" option 2022-12-20 10:10:59 +01:00
pageflip.c modesetting: Fix memory leak on ms_do_pageflip error 2023-02-28 22:43:37 -08:00
present.c modesetting: Pass reference CRTC pointer to ms_do_pageflip 2023-02-28 22:43:37 -08:00
vblank.c modesetting: coalesce vblank events to avoid DRM event queue exhaustion 2022-12-19 23:56:27 -08:00