summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2013-05-20 11:50:05 -0700
committerJay Sorg <jay.sorg@gmail.com>2013-05-20 11:50:05 -0700
commit2039bbe397b9cdd937eed196e987ade4e194e65c (patch)
tree4e547b24100598af2a1c7d981d0afc4cbb195fed
parentbc2c50602e8370875c7c02299dbec09e8300797d (diff)
downloadxrdp-proprietary-2039bbe397b9cdd937eed196e987ade4e194e65c.tar.gz
xrdp-proprietary-2039bbe397b9cdd937eed196e987ade4e194e65c.zip
xrdp: fix for non 'new' cursor clients like rdesktop
-rw-r--r--libxrdp/libxrdp.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/libxrdp/libxrdp.c b/libxrdp/libxrdp.c
index 91ff1e35..19e8a2c6 100644
--- a/libxrdp/libxrdp.c
+++ b/libxrdp/libxrdp.c
@@ -428,17 +428,20 @@ libxrdp_send_pointer(struct xrdp_session *session, int cache_idx,
int data_bytes;
DEBUG(("libxrdp_send_pointer sending cursor"));
+ if (bpp == 0)
+ {
+ bpp = 24;
+ }
/* error check */
if ((session->client_info->pointer_flags & 1) == 0)
{
- if (bpp != 0)
+ if (bpp != 24)
{
g_writeln("libxrdp_send_pointer: error");
return 1;
}
}
- if ((bpp != 0) && (bpp == 15) && (bpp != 16) &&
- (bpp != 24) && (bpp != 32))
+ if ((bpp == 15) && (bpp != 16) && (bpp != 24) && (bpp != 32))
{
g_writeln("libxrdp_send_pointer: error");
return 1;
@@ -446,7 +449,7 @@ libxrdp_send_pointer(struct xrdp_session *session, int cache_idx,
make_stream(s);
init_stream(s, 8192);
xrdp_rdp_init_data((struct xrdp_rdp *)session->rdp, s);
- if (bpp == 0)
+ if ((session->client_info->pointer_flags & 1) == 0)
{
out_uint16_le(s, RDP_POINTER_COLOR);
out_uint16_le(s, 0); /* pad */
@@ -481,7 +484,6 @@ libxrdp_send_pointer(struct xrdp_session *session, int cache_idx,
}
}
break;
- case 0:
case 24:
p = data;
for (i = 0; i < 32; i++)