From 1d94442546abc0eb2c051e48e64d0e2b93e3f0cd Mon Sep 17 00:00:00 2001 From: Max Lv Date: Fri, 12 Jan 2018 10:15:24 +0800 Subject: [PATCH] Refine udp header checking --- src/udprelay.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/udprelay.c b/src/udprelay.c index 805be332..09c27384 100644 --- a/src/udprelay.c +++ b/src/udprelay.c @@ -732,6 +732,12 @@ remote_recv_cb(EV_P_ ev_io *w, int revents) goto CLEAN_UP; } + if (remote_ctx->addr_header_len != len + || memcmp(buf->data, remote_ctx->addr_header, len) != 0) { + LOGI("[udp] mismatched header"); + goto CLEAN_UP; + } + // server may return using a different address type other than the type we // have used during sending #if defined(MODULE_TUNNEL) || defined(MODULE_REDIR)