[libfreerdp] add bound check in gdi_surface_bits()
In Windows remote run vulnerabillities exe program, to create rdpgrfx channel, may case Remmina crash.
So, add bound check, check that the paste area is valid, and determine if the picture is in the paste area.
(cherry picked from commit 6d999672ccc5d94ca97d34bf62a5b8461ec19da5)
In Windows remote run vulnerabillities exe program, to create
Micorosoft::Windows::RDS::Graphics channel, case Remmina crash.
So, add bound check, limit the size of the requested rect, no larger than the surface data buffer.
(cherry picked from commit 6a63441e4ee8e2bf333361f5d24156a183b14ecd)
Some PDUs, like the Activate Device Request only contain the header.
As a result, the size of the rest of the PDU is 0.
The assertion for the PDU size in device_server_packet_new only
considers the size of the body of the PDU.
When that value is 0, the assertion is hit and the server implementation
crashes.
To fix this issue, simply remove this assertion. Since the allocation
size is always at least the header size, there won't ever be an attempt
to create a stream with a size of 0.
packaging/rpm: Enable FFmpeg support on Fedora 36+ and RHEL 9+
Since Fedora Linux 36, an FFmpeg implementation is provided
in the base distribution as "ffmpeg-free". This implementation
is sufficient for building FreeRDP with FFmpeg support.
This implementation is also available in Fedora Extra Packages
for Enterprise Linux (EPEL) for Red Hat Enterprise Linux 9
and derivatives.
Thus, enable FFmpeg support when building for those distributions.
(cherry picked from commit d044a1e073ae0345fb43f5a36b7c2189d20ffb6a)