diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-07-07 17:24:32 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-07-07 17:24:32 +0000 |
commit | 474fdebb7abf08aecbcf00a92b7d53cd9528649c (patch) | |
tree | 9549b7d382a3613a903525c11c8f27bdc22a7d35 | |
parent | 9ced016cbce01342b414a7aedaa0fe6c8f03d671 (diff) | |
download | rtmux-474fdebb7abf08aecbcf00a92b7d53cd9528649c.tar.gz rtmux-474fdebb7abf08aecbcf00a92b7d53cd9528649c.tar.bz2 rtmux-474fdebb7abf08aecbcf00a92b7d53cd9528649c.zip |
Handle empty or unset TERM correctly; also fix a fatal() message while here.
-rw-r--r-- | server-msg.c | 4 | ||||
-rw-r--r-- | tty.c | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/server-msg.c b/server-msg.c index c52fe800..9f33fad3 100644 --- a/server-msg.c +++ b/server-msg.c @@ -211,7 +211,9 @@ server_msg_fn_identify(struct hdr *hdr, struct client *c) c->tty.term_flags |= TERM_88COLOURS; if (data.flags & IDENTIFY_HASDEFAULTS) c->tty.term_flags |= TERM_HASDEFAULTS; - xfree(term); + + if (term != NULL) + xfree(term); c->flags |= CLIENT_TERMINAL; @@ -76,7 +76,7 @@ void tty_init(struct tty *tty, char *path, char *term) { tty->path = xstrdup(path); - if (term == NULL) + if (term == NULL || *term == '\0') tty->termname = xstrdup("unknown"); else tty->termname = xstrdup(term); @@ -98,7 +98,7 @@ tty_open(struct tty *tty, char **cause) if ((mode = fcntl(tty->fd, F_GETFL)) == -1) fatal("fcntl failed"); if (fcntl(tty->fd, F_SETFL, mode|O_NONBLOCK) == -1) - fatal("fcntl failedo"); + fatal("fcntl failed"); if (fcntl(tty->fd, F_SETFD, FD_CLOEXEC) == -1) fatal("fcntl failed"); |