From 1d26957b3bf200c85b775ec4527f74ebf097fd91 Mon Sep 17 00:00:00 2001 From: Nicolas Viennot Date: Sat, 9 Nov 2019 00:51:45 -0500 Subject: [PATCH] Incoming messages should be dispatched first before being forwarded It's a cheap sanity check --- tmate-daemon-decoder.c | 4 ++++ tmate-ssh-daemon.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tmate-daemon-decoder.c b/tmate-daemon-decoder.c index 62e38af9..921237c1 100644 --- a/tmate-daemon-decoder.c +++ b/tmate-daemon-decoder.c @@ -517,6 +517,10 @@ static void tmate_snapshot(__unused struct tmate_session *session, void tmate_dispatch_daemon_message(struct tmate_session *session, struct tmate_unpacker *uk) { + /* We make a copy because we are mutating it */ + struct tmate_unpacker uk_copy = *uk; + uk = &uk_copy; + int cmd = unpack_int(uk); switch (cmd) { #define dispatch(c, f) case c: f(session, uk); break diff --git a/tmate-ssh-daemon.c b/tmate-ssh-daemon.c index c4e6874c..7d631e97 100644 --- a/tmate-ssh-daemon.c +++ b/tmate-ssh-daemon.c @@ -8,8 +8,8 @@ static void on_daemon_decoder_read(void *userdata, struct tmate_unpacker *uk) { struct tmate_session *session = userdata; - tmate_send_websocket_daemon_msg(session, uk); tmate_dispatch_daemon_message(session, uk); + tmate_send_websocket_daemon_msg(session, uk); } static int on_ssh_channel_read(__unused ssh_session _session,