summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/server-client.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2019-12-16 15:48:50 +0000
committernicm <nicm@openbsd.org>2019-12-16 15:48:50 +0000
commitdab96b187283a4fc23ca5a7ac536e094d6d54d49 (patch)
treebbed2c2f3d2c359c2b4df0141ea1acc7487eff5a /usr.bin/tmux/server-client.c
parentstrdup may return NULL if memory allocation fails. Use the safer xstrdup (diff)
downloadwireguard-openbsd-dab96b187283a4fc23ca5a7ac536e094d6d54d49.tar.xz
wireguard-openbsd-dab96b187283a4fc23ca5a7ac536e094d6d54d49.zip
Instead of using large buffers in imsgs, add the data or path onto the end.
Diffstat (limited to 'usr.bin/tmux/server-client.c')
-rw-r--r--usr.bin/tmux/server-client.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/usr.bin/tmux/server-client.c b/usr.bin/tmux/server-client.c
index 1b131cebe91..78a379cfdc9 100644
--- a/usr.bin/tmux/server-client.c
+++ b/usr.bin/tmux/server-client.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: server-client.c,v 1.300 2019/12/12 11:39:56 nicm Exp $ */
+/* $OpenBSD: server-client.c,v 1.301 2019/12/16 15:48:50 nicm Exp $ */
/*
* Copyright (c) 2009 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -2024,10 +2024,10 @@ server_client_dispatch_read_data(struct client *c, struct imsg *imsg)
struct msg_read_data *msg = imsg->data;
size_t msglen = imsg->hdr.len - IMSG_HEADER_SIZE;
struct client_file find, *cf;
- void *bdata = msg->data;
- size_t bsize = msg->size;
+ void *bdata = msg + 1;
+ size_t bsize = msglen - sizeof *msg;
- if (msglen != sizeof *msg)
+ if (msglen < sizeof *msg)
fatalx("bad MSG_READ_DATA size");
find.stream = msg->stream;
if ((cf = RB_FIND(client_files, &c->files, &find)) == NULL)