diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-04-23 10:01:26 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-04-23 10:01:26 +0100 |
commit | e94a15b3d63e84a413a4975d0c1632d4761f4eec (patch) | |
tree | b07d89274ff11d6eedd31319650434ee5e2ada7c | |
parent | 1a612a59361904a2996c8ca8b84e8c76548512b6 (diff) | |
parent | 906dfe9f5c217bb026929120b346722e5cb32106 (diff) | |
download | rtmux-e94a15b3d63e84a413a4975d0c1632d4761f4eec.tar.gz rtmux-e94a15b3d63e84a413a4975d0c1632d4761f4eec.tar.bz2 rtmux-e94a15b3d63e84a413a4975d0c1632d4761f4eec.zip |
Merge branch 'obsd-master'
-rw-r--r-- | cmd-queue.c | 8 | ||||
-rw-r--r-- | spawn.c | 3 |
2 files changed, 9 insertions, 2 deletions
diff --git a/cmd-queue.c b/cmd-queue.c index 5df30940..59f86c64 100644 --- a/cmd-queue.c +++ b/cmd-queue.c @@ -243,8 +243,12 @@ cmdq_copy_state(struct cmdq_state *state) void cmdq_free_state(struct cmdq_state *state) { - if (--state->references == 0) - free(state); + if (--state->references != 0) + return; + + if (state->formats != NULL) + format_free(state->formats); + free(state); } /* Add a format to command queue. */ @@ -364,6 +364,7 @@ spawn_pane(struct spawn_context *sc, char **cause) window_remove_pane(w, new_wp); } sigprocmask(SIG_SETMASK, &oldset, NULL); + environ_free(child); return (NULL); } @@ -450,6 +451,8 @@ complete: sigprocmask(SIG_SETMASK, &oldset, NULL); window_pane_set_event(new_wp); + environ_free(child); + if (sc->flags & SPAWN_RESPAWN) return (new_wp); if ((~sc->flags & SPAWN_DETACHED) || w->active == NULL) { |