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 |
||
---|---|---|
channels | ||
ci/cmake-preloads | ||
client | ||
cmake | ||
docs | ||
external | ||
include | ||
libfreerdp | ||
packaging | ||
rdtk | ||
resources | ||
scripts | ||
server | ||
third-party | ||
uwac | ||
winpr | ||
.gitignore | ||
buildflags.h.in | ||
ChangeLog | ||
CMakeCPack.cmake | ||
CMakeCPackOptions.cmake.in | ||
CMakeLists.txt | ||
config.h.in | ||
LICENSE | ||
README |
FreeRDP: A Remote Desktop Protocol Implementation ================================================= FreeRDP is a free implementation of the Remote Desktop Protocol (RDP), released under the Apache license. Enjoy the freedom of using your software wherever you want, the way you want it, in a world where interoperability can finally liberate your computing experience. Resources --------- Project website: http://www.freerdp.com/ Issue tracker: https://github.com/FreeRDP/FreeRDP/issues Sources: https://github.com/FreeRDP/FreeRDP/ Wiki: https://github.com/FreeRDP/FreeRDP/wiki Downloads and other resources: http://pub.freerdp.com API doc: http://pub.freerdp.com/api/ IRC channel: #freerdp @ irc.freenode.net Mailing list: https://lists.sourceforge.net/lists/listinfo/freerdp-devel Microsoft Open Specifications ----------------------------- Information regarding the Microsoft Open Specifications can be found at: http://www.microsoft.com/openspecifications/ A list of reference documentation is maintained here: https://github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation Compilation ----------- Instructions on how to get started compiling FreeRDP can be found on the wiki: https://github.com/FreeRDP/FreeRDP/wiki/Compilation