diff --git a/libxrdp/xrdp_rdp.c b/libxrdp/xrdp_rdp.c index 1d30f9fc..b8528377 100644 --- a/libxrdp/xrdp_rdp.c +++ b/libxrdp/xrdp_rdp.c @@ -611,7 +611,7 @@ xrdp_rdp_send_data(struct xrdp_rdp *self, struct stream *s, ls.data = mppc_enc->outputBuffer - (rdp_offset + 18); ls.p = ls.data + rdp_offset; ls.end = ls.p + clen; - ls.size = clen; + ls.size = s->end - s->data; ls.iso_hdr = ls.data + iso_offset; ls.mcs_hdr = ls.data + mcs_offset; ls.sec_hdr = ls.data + sec_offset; diff --git a/libxrdp/xrdp_sec.c b/libxrdp/xrdp_sec.c index ffeffbed..8978c0af 100644 --- a/libxrdp/xrdp_sec.c +++ b/libxrdp/xrdp_sec.c @@ -642,6 +642,10 @@ xrdp_sec_init(struct xrdp_sec *self, struct stream *s) s_push_layer(s, sec_hdr, 4); } } + else + { + s_push_layer(s, sec_hdr, 0); + } return 0; }