From 933929cd622478bb43afe590670613da2e9ff359 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 20 Nov 2015 22:02:54 +0000 Subject: [PATCH] Memory leaks and an uninitialized part of utf8_data, from Patrick Palka. --- cmd-if-shell.c | 1 + cmd-new-window.c | 2 +- utf8.c | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cmd-if-shell.c b/cmd-if-shell.c index a9c84261..47f259e7 100644 --- a/cmd-if-shell.c +++ b/cmd-if-shell.c @@ -97,6 +97,7 @@ cmd_if_shell_exec(struct cmd *self, struct cmd_q *cmdq) cmd = args->argv[1]; else if (args->argc == 3) cmd = args->argv[2]; + free(shellcmd); if (cmd == NULL) return (CMD_RETURN_NORMAL); if (cmd_string_parse(cmd, &cmdlist, NULL, 0, &cause) != 0) { diff --git a/cmd-new-window.c b/cmd-new-window.c index fb89e24f..24204746 100644 --- a/cmd-new-window.c +++ b/cmd-new-window.c @@ -97,7 +97,7 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq) ft = format_create(); format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, NULL, NULL); - cwd = format_expand(ft, args_get(args, 'c')); + cwd = to_free = format_expand(ft, args_get(args, 'c')); format_free(ft); } else if (cmdq->client != NULL && cmdq->client->session == NULL) cwd = cmdq->client->cwd; diff --git a/utf8.c b/utf8.c index b391c5ec..2210675a 100644 --- a/utf8.c +++ b/utf8.c @@ -355,6 +355,7 @@ utf8_set(struct utf8_data *ud, u_char ch) u_int i; *ud->data = ch; + ud->have = 1; ud->size = 1; ud->width = 1;