view: check if the buffer was uploaded on save

wlr_surface_has_buffer() is insufficient; if a client has committed a
buffer but it couldn't be applied, NULL deref happens in the next line.
This commit is contained in:
Kirill Primak 2023-10-24 15:24:51 +03:00 committed by Simon Ser
parent 0dfaf7ea63
commit 47263aca28

View file

@ -1422,7 +1422,7 @@ static void view_save_buffer_iterator(struct wlr_surface *surface,
int sx, int sy, void *data) {
struct sway_view *view = data;
if (surface && wlr_surface_has_buffer(surface)) {
if (surface && surface->buffer) {
wlr_buffer_lock(&surface->buffer->base);
struct sway_saved_buffer *saved_buffer = calloc(1, sizeof(struct sway_saved_buffer));
saved_buffer->buffer = surface->buffer;