From acedc2dcf2673cf199ba1ba08705dc8fd270c0c7 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Wed, 23 Sep 2009 14:39:30 +0000 Subject: Sync OpenBSD patchset 345: Don't attempt to open() the tty path, rely on the client sending its stdin fd with imsg and fatal if it doesn't, then set the FD_CLOEXEC flag in tty_init instead of tty_open to prevent them leaking into child processes if any are created between the two calls. This bumps the protocol version, so the tmux server should be killed before upgrading. --- client.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'client.c') diff --git a/client.c b/client.c index 75e46b28..ffaded72 100644 --- a/client.c +++ b/client.c @@ -1,4 +1,4 @@ -/* $Id: client.c,v 1.71 2009-09-20 22:11:27 tcunha Exp $ */ +/* $Id: client.c,v 1.72 2009-09-23 14:39:30 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -45,7 +45,7 @@ client_init(char *path, struct client_ctx *cctx, int cmdflags, int flags) struct winsize ws; size_t size; int fd, fd2, mode; - char *name, *term; + char *term; #ifdef HAVE_SETPROCTITLE char rpathbuf[MAXPATHLEN]; #endif @@ -117,13 +117,8 @@ server_started: *data.term = '\0'; } - *data.tty = '\0'; - if ((name = ttyname(STDIN_FILENO)) == NULL) - fatal("ttyname failed"); - if (strlcpy(data.tty, name, sizeof data.tty) >= sizeof data.tty) - fatalx("ttyname failed"); - - fd2 = dup(STDIN_FILENO); + if ((fd2 = dup(STDIN_FILENO)) == -1) + fatal("dup failed"); imsg_compose(&cctx->ibuf, MSG_IDENTIFY, PROTOCOL_VERSION, -1, fd2, &data, sizeof data); } -- cgit v1.2.3