X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/038ec85e825fc940c1387f64a88ae73b75f6822b..47061bb488400d53fd20deb52d51763d2caa056e:/unix/gtkwin.c diff --git a/unix/gtkwin.c b/unix/gtkwin.c index e1640763..667c72b3 100644 --- a/unix/gtkwin.c +++ b/unix/gtkwin.c @@ -1361,7 +1361,7 @@ void frontend_keypress(void *handle) * any keypress. */ if (inst->exited) - exit(0); + cleanup_exit(0); } static gint idle_exit_func(gpointer data) @@ -3307,7 +3307,7 @@ void dup_session_menuitem(GtkMenuItem *item, gpointer gdata) } sprintf(option, "---[%d,%d]", pipefd[0], size); - fcntl(pipefd[0], F_SETFD, 0); + noncloexec(pipefd[0]); fork_and_exec_self(inst, pipefd[1], option, NULL); close(pipefd[0]); @@ -3344,7 +3344,6 @@ int read_dupsession_data(struct gui_data *inst, Conf *conf, char *arg) } size_used = conf_deserialise(conf, data, size); - sfree(data); if (use_pty_argv && size > size_used) { int n = 0; i = size_used; @@ -3371,6 +3370,8 @@ int read_dupsession_data(struct gui_data *inst, Conf *conf, char *arg) } } + sfree(data); + return 0; }