diff options
author | Thomas Adam <thomas@xteddy.org> | 2019-12-16 18:01:31 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2019-12-16 18:01:31 +0000 |
commit | 52b6ca570627ea58f7b42543ae37398ae63e06d9 (patch) | |
tree | 5a371d1ae3d7506d7c6389e9d422abf6dc81618b /server-client.c | |
parent | e6b02dec199a0f058aee4e9575f57d92b39501f5 (diff) | |
parent | 1bdd4828bd0a13d6fb81c903078ad99ff2429b5d (diff) | |
download | rtmux-52b6ca570627ea58f7b42543ae37398ae63e06d9.tar.gz rtmux-52b6ca570627ea58f7b42543ae37398ae63e06d9.tar.bz2 rtmux-52b6ca570627ea58f7b42543ae37398ae63e06d9.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/server-client.c b/server-client.c index 743ced40..13d58558 100644 --- a/server-client.c +++ b/server-client.c @@ -2026,10 +2026,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) @@ -2113,19 +2113,3 @@ server_client_get_cwd(struct client *c, struct session *s) return (home); return ("/"); } - -/* Resolve an absolute path or relative to client working directory. */ -char * -server_client_get_path(struct client *c, const char *file) -{ - char *path, resolved[PATH_MAX]; - - if (*file == '/') - path = xstrdup(file); - else - xasprintf(&path, "%s/%s", server_client_get_cwd(c, NULL), file); - if (realpath(path, resolved) == NULL) - return (path); - free(path); - return (xstrdup(resolved)); -} |