aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2009-07-08 17:58:32 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2009-07-08 17:58:32 +0000
commit1825609d8d25d38f81b497f2317f60dbb4f9ad39 (patch)
tree198cc32a9a9c071353b4a70d0faf25d995896362
parent43ff216fa6eab2ba27f50ade9308cb30567dfcc7 (diff)
downloadrtmux-1825609d8d25d38f81b497f2317f60dbb4f9ad39.tar.gz
rtmux-1825609d8d25d38f81b497f2317f60dbb4f9ad39.tar.bz2
rtmux-1825609d8d25d38f81b497f2317f60dbb4f9ad39.zip
Handle empty or unset TERM correctly; also fix a fatal() message while here.
-rw-r--r--server-msg.c6
-rw-r--r--tty.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/server-msg.c b/server-msg.c
index 17b67b65..d8983102 100644
--- a/server-msg.c
+++ b/server-msg.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-msg.c,v 1.4 2009/07/07 12:34:47 nicm Exp $ */
+/* $OpenBSD: server-msg.c,v 1.5 2009/07/07 17:24:32 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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;
diff --git a/tty.c b/tty.c
index c48c23c3..c65b47d5 100644
--- a/tty.c
+++ b/tty.c
@@ -1,4 +1,4 @@
-/* $Id: tty.c,v 1.110 2009-07-01 23:06:32 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.9 2009/07/07 17:24:32 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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");