=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/server-client.c,v retrieving revision 1.109 retrieving revision 1.110 diff -u -r1.109 -r1.110 --- src/usr.bin/tmux/server-client.c 2013/10/10 12:26:36 1.109 +++ src/usr.bin/tmux/server-client.c 2013/10/10 12:27:38 1.110 @@ -1,4 +1,4 @@ -/* $OpenBSD: server-client.c,v 1.109 2013/10/10 12:26:36 nicm Exp $ */ +/* $OpenBSD: server-client.c,v 1.110 2013/10/10 12:27:38 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -961,12 +961,12 @@ c->flags |= flags; break; case MSG_IDENTIFY_TERM: - if (data[datalen - 1] != '\0') + if (datalen == 0 || data[datalen - 1] != '\0') fatalx("bad MSG_IDENTIFY_TERM string"); c->term = xstrdup(data); break; case MSG_IDENTIFY_TTYNAME: - if (data[datalen - 1] != '\0') + if (datalen == 0 || data[datalen - 1] != '\0') fatalx("bad MSG_IDENTIFY_TTYNAME string"); c->ttyname = xstrdup(data); break; @@ -981,7 +981,7 @@ c->fd = imsg->fd; break; case MSG_IDENTIFY_ENVIRON: - if (data[datalen - 1] != '\0') + if (datalen == 0 || data[datalen - 1] != '\0') fatalx("bad MSG_IDENTIFY_ENVIRON string"); if (strchr(data, '=') != NULL) environ_put(&c->environ, data);