diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-10-03 08:13:33 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-10-03 08:13:33 +0200 |
| commit | 4132590d8c40cc25c95aac4b72ccf8c9a122749d (patch) | |
| tree | 239fb45eaa7895171a037a2a0320c9a59992b6fd /src | |
| parent | 74e63d907750cefd1154f99e62bcb0895b8a206b (diff) | |
Wayland: add security test to avoid NULL pointer dereferencing
Diffstat (limited to 'src')
| -rw-r--r-- | src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx | 8 |
1 files 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; |
