diff --git a/libxrdp/xrdp_mcs.c b/libxrdp/xrdp_mcs.c index 06a38418..9839cb06 100644 --- a/libxrdp/xrdp_mcs.c +++ b/libxrdp/xrdp_mcs.c @@ -324,6 +324,11 @@ xrdp_mcs_recv_connect_initial(struct xrdp_mcs* self) free_stream(s); return 1; } + if (!s_check_rem(s, len)) + { + free_stream(s); + return 1; + } /* make a copy of client mcs data */ init_stream(self->client_mcs_data, len); out_uint8a(self->client_mcs_data, s->p, len);