=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.338 retrieving revision 1.339 diff -u -r1.338 -r1.339 --- src/usr.bin/tmux/server-client.c 2020/05/16 15:47:22 1.338 +++ src/usr.bin/tmux/server-client.c 2020/05/16 16:07:55 1.339 @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.338 2020/05/16 15:47:22 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.339 2020/05/16 16:07:55 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -238,11 +238,22 @@ int server_client_open(struct client *c, char **cause) { + const char *ttynam = _PATH_TTY; + if (c->flags & CLIENT_CONTROL) return (0); - if (strcmp(c->ttyname, "/dev/tty") == 0) { - *cause = xstrdup("can't use /dev/tty"); + if (strcmp(c->ttyname, ttynam) == 0|| + ((isatty(STDIN_FILENO) && + (ttynam = ttyname(STDIN_FILENO)) != NULL && + strcmp(c->ttyname, ttynam) == 0) || + (isatty(STDOUT_FILENO) && + (ttynam = ttyname(STDOUT_FILENO)) != NULL && + strcmp(c->ttyname, ttynam) == 0) || + (isatty(STDERR_FILENO) && + (ttynam = ttyname(STDERR_FILENO)) != NULL && + strcmp(c->ttyname, ttynam) == 0))) { + xasprintf(cause, "can't use %s", c->ttyname); return (-1); }