summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libxrdp/xrdp_caps.c2
-rw-r--r--xrdp/xrdp_mm.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/libxrdp/xrdp_caps.c b/libxrdp/xrdp_caps.c
index 66c8c88d..c4ec7b02 100644
--- a/libxrdp/xrdp_caps.c
+++ b/libxrdp/xrdp_caps.c
@@ -541,6 +541,8 @@ xrdp_caps_process_frame_ack(struct xrdp_rdp *self, struct stream *s, int len)
in_uint32_le(s, self->client_info.max_unacknowledged_frame_count);
if (self->client_info.max_unacknowledged_frame_count < 0)
{
+ g_writeln(" invalid max_unacknowledged_frame_count value (%d), setting to 0",
+ self->client_info.max_unacknowledged_frame_count);
self->client_info.max_unacknowledged_frame_count = 0;
}
g_writeln(" max_unacknowledged_frame_count %d", self->client_info.max_unacknowledged_frame_count);
diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c
index 0e6c3e54..ea719417 100644
--- a/xrdp/xrdp_mm.c
+++ b/xrdp/xrdp_mm.c
@@ -2153,7 +2153,6 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self)
int cx;
int cy;
int use_frame_acks;
- int ex;
if (self == 0)
{
@@ -2281,13 +2280,15 @@ xrdp_mm_frame_ack(struct xrdp_mm *self, int frame_id)
{
int ex;
- LLOGLN(10, ("xrdp_mm_frame_ack:"));
+ LLOGLN(10, ("xrdp_mm_frame_ack: incoming %d, client %d, server %d", frame_id,
+ self->encoder->frame_id_client, self->encoder->frame_id_server));
self->encoder->frame_id_client = frame_id;
if (self->wm->client_info->use_frame_acks == 0)
{
return 1;
}
ex = self->wm->client_info->max_unacknowledged_frame_count;
+ /* make sure we won't have too many in-flight frames */
if (self->encoder->frame_id_client + ex >= self->encoder->frame_id_server)
{
if (self->encoder->frame_id_server > self->encoder->frame_id_server_sent)