From 57cba6afb47d375fb8353e4e79d1cc6dbc6f92a4 Mon Sep 17 00:00:00 2001 From: Sebastian Wick Date: Mon, 27 Mar 2023 21:52:19 +0200 Subject: [PATCH] clients/simple-dmabuf-feedback: fix dangling pointers to presentation feedback objects. Signed-off-by: Sebastian Wick --- clients/simple-dmabuf-feedback.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/clients/simple-dmabuf-feedback.c b/clients/simple-dmabuf-feedback.c index 0f058fe5b..e6832dab9 100644 --- a/clients/simple-dmabuf-feedback.c +++ b/clients/simple-dmabuf-feedback.c @@ -682,8 +682,10 @@ redraw(void *data, struct wl_callback *callback, uint32_t time) window->callback = wl_surface_frame(window->surface); wl_callback_add_listener(window->callback, &frame_listener, window); - if (window->presentation_feedback) + if (window->presentation_feedback) { wp_presentation_feedback_destroy(window->presentation_feedback); + window->presentation_feedback = NULL; + } if (window->display->presentation) { window->presentation_feedback = wp_presentation_feedback(window->display->presentation, @@ -735,12 +737,15 @@ static void presentation_feedback_handle_presented(void *data, window->presented_zero_copy = zero_copy; wp_presentation_feedback_destroy(feedback); + window->presentation_feedback = NULL; } static void presentation_feedback_handle_discarded(void *data, struct wp_presentation_feedback *feedback) { + struct window *window = data; wp_presentation_feedback_destroy(feedback); + window->presentation_feedback = NULL; } static const struct wp_presentation_feedback_listener presentation_feedback_listener = {