Commit Graph

174 Commits

Author SHA1 Message Date
Armin Novak
61d380943d Added bounds check in rdpgfx_recv_wire_to_surface_1_pdu 2021-03-12 10:52:04 +01:00
akallabeth
f346793970 Refactored encoder functions to return changed areas 2021-03-01 11:52:07 +01:00
akallabeth
51811a369f Fixed missing stream length checks. 2020-11-20 09:39:25 +01:00
Armin Novak
75aab487e2 Added duplicate initialization check for plugins. 2020-08-10 16:17:44 +02:00
akallabeth
4039370064 Fixed input sanitation in rdpgfx_recv_solid_fill_pdu
The input rectangle must be checked for plausibility.

Thanks to Sunglin and HuanGMz of the Knownsec 404 security team and pangzi of pwnzen
2020-07-20 14:11:36 +02:00
akallabeth
cac8c365f2 Reset pointer to NULL after free. 2020-05-20 15:10:08 +02:00
Vladyslav Hordiienko
15245c2abd fix typo in GFX logs 2020-05-18 10:56:40 +02:00
akallabeth
64ad42b95b Fixed DestroyListener arguments and call order 2020-05-13 17:11:17 +02:00
akallabeth
2f5e5359f6 Destroy channel listeners on terminate 2020-05-12 11:40:42 +02:00
Kobi Mizrachi
929457db4c egfx: client: add missing NULL checks 2020-03-09 08:28:40 +01:00
Armin Novak
5690780bdd [RDPEGFX] checks for cache import, prevent 0 size allocations 2020-03-06 12:28:21 +01:00
Armin Novak
35d7e896ae Fix GFX cache eviction, use 1 based indexing. 2020-03-04 11:01:23 +01:00
Martin Fleisz
174832150e
Merge pull request #5932 from nfedera/fix_gfx_bitmapcache_indexing
Fix RDPEGFX bitmap cache indexing
2020-03-04 09:31:52 +01:00
Norbert Federa
17e0d25104 dynvc/client: fix and improve channel closing code
- fixed and consolitate the duplicated code for sending the
  CLOSE_REQUEST_PDU to the server into dvcman_close_channel
- call dvcman_close_channel if a dynamic channel plugin fails
  to process the received channel data
- rdpegfx: don't try to remove a non-existing cache entry,
  return an error instead which now will close the channel, as
  expected by Microsoft's windows protocols test suite
2020-03-04 08:03:56 +01:00
Norbert Federa
39e12990e8 rdpegfx: rename MaxCacheSlot to MaxCacheSlots
Although Microsoft uses 1-based numbering on the wire for indexing the
GFX bitmap cache entries, the code in FreeRDP uses 0-based numbering and
therefore the name MaxCacheSlots is less confusing.
2020-03-02 09:55:25 +01:00
Norbert Federa
f4d5ec776f rdpegfx: use 1-based indexing for bitmap cache
Weird but Microsoft uses 1-based indexing in the RDPGFX bitmap
cache PDU's.

This does not seem to be documented but can be deducted from the
RDP client test code in Microsoft's "Windows Protocol Test Suites"
GitHub repository and the observation that mstsc aborts with a
protocol error if the cacheSlot index value 0 is used in e.g. a
GFX surface to cache PDU.
2020-03-02 09:55:25 +01:00
Armin Novak
03e2106f25 Fixed accidental reorder of surface delete and disconnect 2020-01-16 15:24:55 +01:00
Kobi Mizrachi
18be21a4fa rdpgfx: client: fix leak when using rdpgfx_client_context_new API 2020-01-13 13:41:44 +01:00
Kobi Mizrachi
3f9e6ca978 rdpgfx: surface_to_scaled_window: fix pdu type 2019-12-12 11:10:44 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
kubistika
bf2e1a33d0 channels: rdpgfx: export API to create rdpgfx client 2019-10-24 12:19:31 +02:00
Armin Novak
f93d625cde Use GetTickCount64 instead of GetTickCountPrecise. 2019-09-02 15:46:36 +02:00
kubistika
bf618fb929 rdpgfx/client: Update gfx->UnacknowlegedFrame correctly 2019-06-06 10:24:27 +03:00
kubistika
49e7c5ddc0 rdpgfx/server: Fix formatting: rdpgfx_recv_cache_import_offer_pdu 2019-06-06 07:53:34 +03:00
kubistika
bf97d3e041 rdpgfx/client: Expose QoeFrameAck 2019-06-06 07:53:34 +03:00
kubistika
98e09af2ff rdpgfx/client: Implement CacheImportOffer PDU 2019-06-06 07:53:34 +03:00
kubistika
e2eeb9f870 rdpgfx: Add WITH_DEBUG_RDPGFX option 2019-06-04 10:29:05 +03:00
Armin Novak
f22b77d49c Fixed GFX flags and CapsConfirm return checks 2019-05-09 12:46:10 +02:00
Armin Novak
48a12ae131 Fixed memory leak and return values in rdpgfx_recv_caps_advertise_pdu 2019-05-08 12:05:58 +02:00
Armin Novak
7b2608a938 Added gfx capability filter option.
With this new option it is possible to selectively disable certain
GFX capability versions. This way buggy behaviour can be addressed
at runtime.
2019-05-08 11:43:22 +02:00
Armin Novak
1bb933b991 Fixed missing argument checks.
The arguments for rdpgfx_send_frame_acknowledge_pdu must be checked
as in some call stacks they might be NULL.
2019-05-07 13:46:24 +02:00
Armin Novak
3b7e46fb0e Updated GFX to 10.6 spec 2019-05-07 12:10:13 +02:00
akallabeth
95b8b43d4d
Merge pull request #5376 from kubistika/bugfix/rdpgfx-server-v10.6-PDUs
rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec
2019-05-06 15:32:32 +02:00
akallabeth
314fcee41e
Merge pull request #5377 from m4ntis/gfx/fix-caps-confirm-recv
client/rdgpfx_main.c: Fix rdpgfx_recv_caps_confirm_pdu caps length read
2019-05-06 12:51:23 +02:00
Mati Shabtay
2048708235 client/rdpgfx_main.h: Formatting 2019-05-05 16:27:11 +03:00
Armin Novak
841cb70f91 Fixed const correctness of gfx function pointer
Signed-off-by: Mati Shabtay <matishabtay@gmail.com>
2019-05-05 16:17:15 +03:00
Mati Shabtay
eee234c239 rdpgfx/client: Add callbacks for manual caps sending and frame acking 2019-05-05 15:56:35 +03:00
Mati Shabtay
e9dfe13a70 client/rdgpfx_main.c: Fix rdpgfx_recv_caps_confirm_pdu caps length read 2019-05-05 13:39:04 +03:00
kubistika
e9faaedc85 rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec 2019-05-05 12:34:57 +03:00
Martin Fleisz
6eb108058e
Merge pull request #5306 from akallabeth/gfx_server_caps_input_checks
Fixed input stream length checks in rdpgfx_recv_caps_advertise_pdu
2019-04-29 11:27:06 +02:00
Armin Novak
8af9c138e3 Fixed input stream length checks in rdpgfx_recv_caps_advertise_pdu 2019-04-26 13:11:46 +02:00
Mati Shabtay
6e8c02c9ee Added optional PreFrameAck callback to RdpgfxClientContext (#5303)
* RdpgfxClientContext: Add PreFrameAck callback

* client/rdpgfx_main.c: Call PreFrameAck callback before acking frame

* client/rdpgfx_main.c: Fix windows_msbuild_vs2010 CI build

* client/rdpgfx_main.c: Fix error logs log level
2019-04-05 13:37:51 +02:00
Mati Shabtay
5d808226af client/rdpgfx_main.c: Fix wire to surface 2 pixel format decode 2019-03-18 16:07:18 +02:00
Mati Shabtay
88b7859c87 server/rdpgfx_main.c: Fixed caps advertise PDU recv (#5304) 2019-03-15 08:37:35 +01:00
Armin Novak
11cefecb7b Temporarily disable GFX version >= 10.3 2019-03-04 09:07:27 +01:00
Armin Novak
9be2324be8 Disabled RDPGFX_CAPVERSION_106 for good. 2019-02-28 13:43:11 +01:00
Armin Novak
69e9571d9e Fixed EGFX capability parsing, respect length fields.
Disable RDPGFX_CAPVERSION_106 as we currently do not support scaled
outputs.
2019-02-27 17:15:43 +01:00
Armin Novak
e8c8e7b6d0 Updated EGFX support to 10.6 2019-02-27 16:36:15 +01:00
Armin Novak
5904cad1f7 Replaced hardcoded xfreerdp program name 2019-02-12 10:53:30 +01:00
Armin Novak
d5720b7999 Fixed clang scanbuild false positive memory leak.
The memset did confuse the analyzer. Remove it as the variable
is already initialized to zero.
2019-01-29 17:17:24 +01:00