fix crashes when resizing after CSD enabled at runtime with csd.size = 0

This commit is contained in:
feeptr 2021-09-23 22:17:43 +00:00 committed by feeptr@codeberg.org
parent 8e4d020a41
commit 304aacdb7a
2 changed files with 5 additions and 2 deletions

View file

@ -1673,7 +1673,8 @@ render_csd_title(struct terminal *term, const struct csd_data *info,
xassert(term->window->csd_mode == CSD_YES);
struct wl_surf_subsurf *surf = &term->window->csd.surface[CSD_SURF_TITLE];
xassert(info->width > 0 && info->height > 0);
if (info->width == 0 || info->height == 0)
return;
xassert(info->width % term->scale == 0);
xassert(info->height % term->scale == 0);

4
shm.c
View file

@ -322,6 +322,8 @@ get_new_buffers(struct buffer_chain *chain, size_t count,
sizes[i] = stride[i] * heights[i];
total_size += sizes[i];
}
if (total_size == 0)
return;
int pool_fd = -1;
@ -486,7 +488,7 @@ get_new_buffers(struct buffer_chain *chain, size_t count,
}
#endif
if (!shm_can_scroll(bufs[0])) {
if (!(bufs[0] && shm_can_scroll(bufs[0]))) {
/* We only need to keep the pool FD open if were going to SHM
* scroll it */
close(pool_fd);