Merge branch 'fix-0px-csd-crash'

This commit is contained in:
Daniel Eklöf 2021-10-08 10:05:52 +02:00
commit 0be711497d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 6 additions and 2 deletions

View file

@ -47,6 +47,7 @@
* Sticky modifiers in input handling; when determining modifier
state, foot was looking at **depressed** modifiers, not
**effective** modifiers, like it should.
* Fix crashes after enabling CSD at runtime when `csd.size` is 0.
### Security

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);