summaryrefslogtreecommitdiffstats
path: root/server-client.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2019-12-16 18:01:31 +0000
committerThomas Adam <thomas@xteddy.org>2019-12-16 18:01:31 +0000
commit52b6ca570627ea58f7b42543ae37398ae63e06d9 (patch)
tree5a371d1ae3d7506d7c6389e9d422abf6dc81618b /server-client.c
parente6b02dec199a0f058aee4e9575f57d92b39501f5 (diff)
parent1bdd4828bd0a13d6fb81c903078ad99ff2429b5d (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c22
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));
-}