summaryrefslogtreecommitdiffstats
path: root/server-client.c
diff options
context:
space:
mode:
authornicm <nicm>2013-10-10 12:27:38 +0000
committernicm <nicm>2013-10-10 12:27:38 +0000
commitb8b85fbb0c6cf4e9a3fa650ec7dc5036a1b0b01a (patch)
tree6d1981762767e029390db73848b88490fb716527 /server-client.c
parent282c5f9644ed262ee15efbd3d072f7acc577da15 (diff)
Don't look at string[length - 1] if length == 0.
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/server-client.c b/server-client.c
index a39f56d8..e202902e 100644
--- a/server-client.c
+++ b/server-client.c
@@ -961,12 +961,12 @@ server_client_msg_identify(struct client *c, struct imsg *imsg)
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 @@ server_client_msg_identify(struct client *c, struct imsg *imsg)
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);