a1128872d3
The file contents PDUs support 64-bit file sizes and offsets, but MS-RDPECLIP explicitly says in 2.2.5.3 File Contents Request PDU that file larger that 4 gigabytes are not supported by the server. It turns out that the supported size is even lower than that. The server cannot correctly handle files larger than 2 gigabytes (inclusive). When faced with such files it correctly retireves the lower part, but fails to accept any data past that boundary. After receiving a file range reply the server repeats the file range request with the same offset, and again, and again, and again, making no progress and blocking the file transfer indefinitely. This is not the behavior we would like to have. Microsoft support site acknowledges and documents the issue [1], suggesting the users to use disk drive redirection instead to transfer large files. (File transfers via cliprdr are considerably slower than disk drive redirection so the suggestion makes very much sense.) However, we would like to avoid the lockdown of the remote session if the user does attempt to transfer such files so we add a size check. Putting it into the conversion from FILEDESCRIPTOR to CLIPRDR_FILELIST is not an ideal place (the clients may not use the common utilities), but that's good enough currently. [1]: https://support.microsoft.com/en-us/help/2258090 |
||
---|---|---|
.. | ||
client | ||
server | ||
ChannelOptions.cmake | ||
CMakeLists.txt |