From 2a3b4e1f2d272ccc88c8a99121d3ca7f9414e3ed Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Fri, 2 Sep 2022 09:35:44 +0200 Subject: Wayland: fix issue #492 "Use after free()". --- libdecor/src/plugins/cairo/libdecor-cairo.c | 4 +++- libdecor/src/plugins/gtk/libdecor-gtk.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libdecor/src/plugins/cairo/libdecor-cairo.c b/libdecor/src/plugins/cairo/libdecor-cairo.c index 155a495a5..d58c1f82d 100644 --- a/libdecor/src/plugins/cairo/libdecor-cairo.c +++ b/libdecor/src/plugins/cairo/libdecor-cairo.c @@ -2374,8 +2374,10 @@ pointer_button(void *data, toggle_maximized(&frame_cairo->frame); break; case BUTTON_CLOSE: - if (closeable(frame_cairo)) + if (closeable(frame_cairo)) { libdecor_frame_close(&frame_cairo->frame); + return; + } break; default: break; diff --git a/libdecor/src/plugins/gtk/libdecor-gtk.c b/libdecor/src/plugins/gtk/libdecor-gtk.c index 53cc81339..34477470d 100644 --- a/libdecor/src/plugins/gtk/libdecor-gtk.c +++ b/libdecor/src/plugins/gtk/libdecor-gtk.c @@ -2221,9 +2221,11 @@ pointer_button(void *data, toggle_maximized(&frame_gtk->frame); break; case HEADER_CLOSE: - if (closeable(frame_gtk)) + if (closeable(frame_gtk)) { libdecor_frame_close( &frame_gtk->frame); + return; + } break; default: break; -- cgit v1.2.3