diff --git a/notify.c b/notify.c index 39e8db4e..7c5f0731 100644 --- a/notify.c +++ b/notify.c @@ -505,10 +505,13 @@ notify_icon_del(struct terminal *term, const char *id) void notify_icon_free(struct notification_icon *icon) { - if (icon->tmp_file_fd >= 0) - close(icon->tmp_file_fd); - if (icon->tmp_file_name != NULL) + if (icon->tmp_file_name != NULL) { unlink(icon->tmp_file_name); + if (icon->tmp_file_fd >= 0) { + xassert(icon->tmp_file_fd > 0); // DEBUG + close(icon->tmp_file_fd); + } + } free(icon->id); free(icon->symbolic_name); diff --git a/shm.c b/shm.c index 879745d4..04cec211 100644 --- a/shm.c +++ b/shm.c @@ -255,7 +255,7 @@ instantiate_offset(struct buffer_private *buf, off_t new_offset) void *mmapped = MAP_FAILED; struct wl_buffer *wl_buf = NULL; - pixman_image_t **pix = xcalloc(buf->public.pix_instances, sizeof(*pix)); + pixman_image_t **pix = xcalloc(buf->public.pix_instances, sizeof(pix[0])); mmapped = (uint8_t *)pool->real_mmapped + new_offset; diff --git a/terminal.c b/terminal.c index dc4f37b6..e95a3615 100644 --- a/terminal.c +++ b/terminal.c @@ -1330,6 +1330,10 @@ term_init(const struct config *conf, struct fdm *fdm, struct reaper *reaper, } } + for (size_t i = 0; i < ALEN(term->notification_icons); i++) { + term->notification_icons[i].tmp_file_fd = -1; + } + add_utmp_record(conf, reaper, ptmx); if (!pty_path) {