Dear Maintainer,
I tried to get some information to this issue.
The error is given within this backtrace [1].
This is also present in the upstream git 1.8.x branch.
A git bisect points to upstream commit 82fce18.
However that commit seems to just add some checks to
not overrun some receive buffers. So it looks like
that overrun is since a longer time included but
got not detected.
Therefore might it be, that Windows XP just sends
packets with this byte less?
Attached patch checks if the end of the receive buffer
is already reached and just if not "extracts" the
"userid", which is not used at all later (as far as I see).
A package with this patch seemed to work like intended,
but maybe upstream can confirm this patch.
Upstream master seems to have moved some logic
in 1a82d41, so the line in question looks like
requesting now two bytes as "pduSource".
There is upstream issue [2] that seems about this issue.
It got closed because of unreproducibility, I am going to
comment there and point to this information.
Kind regards,
Bernhard
[1]
(gdb) bt
#0 _rdp_protocol_error (file=0x4517d8 "rdp.c", line=140, func=0x452068 <__func__.19872> "rdp_recv", message=0x450373 "unexpected stream overrun", s=0x474ba0 <g_in>) at rdp.c:1870
#1 0x004285f9 in rdp_recv (type=type@entry=0xbffff023 "") at rdp.c:140
#2 0x00428c72 in rdp_loop (deactivated=<optimized out>, ext_disc_reason=<optimized out>) at rdp.c:1777
#3 0x0042c157 in rdp_main_loop (deactivated=0xbffff128, ext_disc_reason=0xbffff12c) at rdp.c:1758
#4 0x004066a8 in main (argc=<optimized out>, argv=<optimized out>) at rdesktop.c:1191
[2] https://github.com/rdesktop/rdesktop/issues/342