summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-10-03 08:13:33 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-10-03 08:13:33 +0200
commit4132590d8c40cc25c95aac4b72ccf8c9a122749d (patch)
tree239fb45eaa7895171a037a2a0320c9a59992b6fd /src
parent74e63d907750cefd1154f99e62bcb0895b8a206b (diff)
Wayland: add security test to avoid NULL pointer dereferencing
Diffstat (limited to 'src')
-rw-r--r--src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx8
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;