aboutsummaryrefslogtreecommitdiff
path: root/server-client.c
diff options
context:
space:
mode:
authornicm <nicm>2019-12-16 15:48:50 +0000
committernicm <nicm>2019-12-16 15:48:50 +0000
commiteaa58d28dc7da9b2ef0d77f4c8e85aab55b71935 (patch)
treec6e7cf718c7a5d8f7348c2e178a7114c5a41c030 /server-client.c
parent21f9b39f060006fe769034ac2bb9b71d0a910f80 (diff)
downloadrtmux-eaa58d28dc7da9b2ef0d77f4c8e85aab55b71935.tar.gz
rtmux-eaa58d28dc7da9b2ef0d77f4c8e85aab55b71935.tar.bz2
rtmux-eaa58d28dc7da9b2ef0d77f4c8e85aab55b71935.zip
Instead of using large buffers in imsgs, add the data or path onto the end.
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 e6e4d8a9..fdedc35f 100644
--- a/server-client.c
+++ b/server-client.c
@@ -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)