aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2013-10-06 21:20:11 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2013-10-06 21:20:11 +0100
commitd86c70af965c862651017ab4c288160f37ec654b (patch)
tree88f689e3f2c5a894820624ce103636acfcaf6c3a
parent4538c269d0b366a770a5a5ebfe0c5007569edbc1 (diff)
downloadrtmux-d86c70af965c862651017ab4c288160f37ec654b.tar.gz
rtmux-d86c70af965c862651017ab4c288160f37ec654b.tar.bz2
rtmux-d86c70af965c862651017ab4c288160f37ec654b.zip
Don't look at string[length - 1] if length == 0.
-rw-r--r--client.c4
-rw-r--r--server-client.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/client.c b/client.c
index 61791876..90bd40cb 100644
--- a/client.c
+++ b/client.c
@@ -580,7 +580,7 @@ client_dispatch_wait(void *data0)
imsg_free(&imsg);
return (-1);
case MSG_SHELL:
- if (data[datalen - 1] != '\0')
+ if (datalen == 0 || data[datalen - 1] != '\0')
fatalx("bad MSG_SHELL string");
clear_signals(0);
@@ -664,7 +664,7 @@ client_dispatch_attached(void)
kill(getpid(), SIGTSTP);
break;
case MSG_LOCK:
- if (data[datalen - 1] != '\0')
+ if (datalen == 0 || data[datalen - 1] != '\0')
fatalx("bad MSG_LOCK string");
system(data);
diff --git a/server-client.c b/server-client.c
index 8a99367c..090916c8 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);