diff --git a/mode-key.c b/mode-key.c index ccd5465c..26eb771e 100644 --- a/mode-key.c +++ b/mode-key.c @@ -337,6 +337,7 @@ mode_key_free_trees(void) while (!SPLAY_EMPTY(mtab->tree)) { mbind = SPLAY_ROOT(mtab->tree); SPLAY_REMOVE(mode_key_tree, mtab->tree, mbind); + xfree(mbind); } } } diff --git a/screen-write.c b/screen-write.c index 449c3a35..d9b523c4 100644 --- a/screen-write.c +++ b/screen-write.c @@ -91,6 +91,7 @@ screen_write_strlen(int utf8flag, const char *fmt, ...) } } + xfree(msg); return (size); } diff --git a/screen.c b/screen.c index 650278b2..b2bcffa3 100644 --- a/screen.c +++ b/screen.c @@ -63,6 +63,8 @@ screen_reinit(struct screen *s) void screen_free(struct screen *s) { + if (s->tabs != NULL) + xfree(s->tabs); xfree(s->title); grid_destroy(s->grid); } diff --git a/status.c b/status.c index 7fcf5e9b..e4836d34 100644 --- a/status.c +++ b/status.c @@ -801,6 +801,7 @@ status_prompt_key(struct client *c, int key) memcpy(first, s, strlen(s)); c->prompt_index = (first - c->prompt_buffer) + strlen(s); + xfree(s); c->flags |= CLIENT_STATUS; break;