From 4132590d8c40cc25c95aac4b72ccf8c9a122749d Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Tue, 3 Oct 2023 08:13:33 +0200 Subject: [PATCH] Wayland: add security test to avoid NULL pointer dereferencing --- src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx index 317aa906c..bb72a69d4 100644 --- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx @@ -339,9 +339,8 @@ void Fl_Wayland_Window_Driver::make_current() { } // to support progressive drawing - if ( (!Fl_Wayland_Window_Driver::in_flush_) && window->buffer && (!window->buffer->cb) && - !wait_for_expose_value ) { - //fprintf(stderr, "direct make_current: new cb=%p\n", window->buffer->cb); + if ( (!Fl_Wayland_Window_Driver::in_flush_) && window->buffer && (!window->buffer->cb) + && window->buffer->draw_buffer_needs_commit && (!wait_for_expose_value) ) { Fl_Wayland_Graphics_Driver::buffer_commit(window); } @@ -873,8 +872,7 @@ static void handle_configure(struct libdecor_frame *frame, #ifndef LIBDECOR_MR131 bool in_decorated_window_resizing = (window->state & LIBDECOR_WINDOW_STATE_RESIZING); #endif - //printf("resize request received from compositor to %dx%d\n",width,height); - if (in_decorated_window_resizing && window->buffer->cb) { + if (in_decorated_window_resizing && window->buffer && window->buffer->cb) { // Skip resizing & redrawing. The last resize request won't be skipped because // in_decorated_window_resizing will be false then. return;