summaryrefslogtreecommitdiff
path: root/libdecor/src/plugins
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-09-02 09:35:44 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-09-02 09:35:44 +0200
commit2a3b4e1f2d272ccc88c8a99121d3ca7f9414e3ed (patch)
tree0d45e1f6219d7622657f73a6f6bb6f4a8dcc2f99 /libdecor/src/plugins
parente0bf25d91127eb45428f14cb6dbbbd02956acd45 (diff)
Wayland: fix issue #492 "Use after free()".
Diffstat (limited to 'libdecor/src/plugins')
-rw-r--r--libdecor/src/plugins/cairo/libdecor-cairo.c4
-rw-r--r--libdecor/src/plugins/gtk/libdecor-gtk.c4
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;