Commit Graph

288 Commits

Author SHA1 Message Date
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
akallabeth
81d2c1f057 [clang-tidy] clang-analyzer-core.NullDereference 2024-02-15 11:49:16 +01:00
akallabeth
0ba995655d [clang-tidy] cppcoreguidelines-init-variables 2024-02-15 11:49:16 +01:00
Vic Lee
5559e59f40 [channels] Add synchronous static channel setting. 2024-02-01 15:06:23 +01:00
Armin Novak
731e1f183d [channel,rdpds] ignore XPS device messages
if FreeRDP_IgnoreInvalidDevices is set ignore XPS messages for unknown
devices
2023-12-06 15:22:59 +01:00
Armin Novak
303c477c06 [channels,rdpdr] fix #9610
windows RDP server randomly sends PAKID_CORE_SERVER_CAPABILITY to
reinitialize the rdpdr channel. Allow this message in all following
states.
2023-12-06 15:22:59 +01:00
akallabeth
eb445f7c43 [channels] make settings opaque 2023-11-24 14:54:56 +01:00
LucasMou
412c5c4ba6 fix abnormal exit: when removing the USB flash drive, the program abnormal exit 2023-11-15 10:46:42 +01:00
Armin Novak
e7f8c05bb6 [channel,rdpdr] relax state checks
ClientID confirm message might be sent async to userloggedon. So allow
these messages to arrive in any order
2023-11-09 10:12:16 +01:00
Armin Novak
43fc6bbfdc [channel,rdpdr] use server general caps
* read server CAP_GENERAL_TYPE
* check if messages are allowed according to caps
2023-11-09 10:12:16 +01:00
Armin Novak
9e361b613d [channels,rdpdr] fix user loggedon handling
PAKID_CORE_USER_LOGGEDON might happen in quite a lot of combinations not
obvious from the spec at first glance. Relax state checks so that all
valid combinations are allowed.
2023-11-02 11:21:32 +01:00
akallabeth
bb5345c60e [freerdp,api] add FREERDP_ENTRY_POINT
C requires prototypes or compilers will complain about them missing. Our
library entry points do not have such, therefore add the macro
FREERDP_ENTRY_POINT which declares the function prototype automatically
before the function.
2023-08-25 14:36:05 +02:00
akallabeth
54847499e9 [winpr,collections] fix ListDictionary New/Free handling 2023-06-27 15:05:43 +02:00
akallabeth
63d4da2d0d [winpr,collections] ListDictionary_GetKeys 2023-06-27 15:05:43 +02:00
Armin Novak
970f0c54e8 [stream] use const correct Stream_Pointer access 2023-06-08 08:09:33 +02:00
akallabeth
00b393c094 [channels,rdpdr] enforce client state checks
Keep track of client channel state and abort on invalid messages for a
certain state
2023-06-05 09:56:43 +02:00
Richard Markiewicz
13e52cfae2 [channels,settings] add a setting to ignore invalid devices 2023-04-24 11:29:05 +02:00
akallabeth
a5b42f0f84 [includes] untangled circular includes 2023-03-15 08:22:23 +01:00
akallabeth
c3a82daad6 [channels] simplified client linking 2023-03-01 08:18:34 +01:00
Armin Novak
641022b795 [logging] remove __FUNCTION__ from actual message
prefer the log formatter to provide that information.
2023-01-25 16:26:39 +01:00
akallabeth
82ba9ede9c [freerdp] use FREERDP_/UWAC_/RDTK_ prefix for conditional headers 2023-01-10 17:38:00 +01:00
Armin Novak
f1e7cc0d48 [rdpdr] unify header read/write 2023-01-10 11:49:38 +01:00
Armin Novak
920d5ee7a1 [rdpdr] improved version handling 2023-01-10 11:49:38 +01:00
Armin Novak
37454c7420 [utils] improve rdpdr packet dump 2022-12-22 15:09:03 +01:00
Armin Novak
d5c5473aa9 [channel,rdpdr] use wLog* for client logging 2022-12-22 15:09:03 +01:00
Armin Novak
318b55adc1 [rdpdr] filter empty device announce 2022-12-22 15:09:03 +01:00
Armin Novak
df4c076946 [channels,rdpdr] abort on invalid device request
If a request references a non existing device abort.
2022-12-15 14:57:29 +01:00
Armin Novak
186e97e0a8 [channels,rdpdr] better logging of device manager
if a device could not be found print a better log message
2022-12-15 14:57:29 +01:00
Armin Novak
231babef5e [channels,rdpdr] improve log message
try to stringify magic numbers in log message
2022-12-15 14:57:29 +01:00
Armin Novak
ec68b1f2a5 [channels,rdpdr] fix computer name sending
The name should be '\0' terminated.
2022-12-08 13:29:46 +01:00
Armin Novak
a57c480b29 [channel,rdpdr] proper queue cleanup for rdpdr 2022-12-02 15:08:09 +01:00
akallabeth
5799fb2018 Replace ConvertFromUnicode and ConvertToUnicode
* Use new ConvertUtf8ToWChar, ConvertUtf8NToWChar,
  ConvertUtf8ToWCharAlloc and ConvertUtf8NToWCharAlloc
* Use new ConvertWCharToUtf8, ConvertWCharNToUtf8,
  ConvertWCharToUtf8Alloc and ConvertWCharNToUtf8Alloc
* Use new Stream UTF16 to/from UTF8 read/write functions
* Use new settings UTF16 to/from UTF8 read/write functions
2022-11-28 10:42:36 +01:00
Armin Novak
60d2e525f5 [channel rdpdr] Clean up IRP on processing errors 2022-11-11 06:42:45 +01:00
Armin Novak
81d14e1c87 Fixed rdpdr stream leaks 2022-06-27 14:27:12 +02:00
akallabeth
76661f6019 Use StreamPool in rdpdr 2022-06-27 11:21:24 +02:00
akallabeth
bc8b4ade1c reformatted 2022-06-23 08:48:39 +02:00
akallabeth
e2acd03498 Fixed rdpdr resource cleanup 2022-06-23 07:45:55 +02:00
David Fort
77413f49b2 winpr: rework alignment functions
_align_XXX functions aren't widely available depending on the C runtime. That causes
problems with mingw where we can easily have some runtime mixes (which lead to mysterious
segfaults most of the time). This patch introduce winpr_aligned_XXX functions that will
either use the function available, or use an emulation layer.
2022-05-12 11:36:01 +02:00
akallabeth
6fd71fe737 Eliminate Dead nested assignment warnings 2022-04-28 12:37:19 +02:00
akallabeth
cc3e28f2f1 Fixed -Wdocumentation errors 2022-04-28 11:24:51 +02:00
akallabeth
73cdcdfe09
Logging and parser fixes (#7796)
* Fixed remdesk settings pointer

* Fixed sign warnings in display_write_monitor_layout_pdu

* Use freerdp_abort_connect_context and freerdp_shall_disconnect_context

* Added and updates settings

* info assert/dynamic timezone

* mcs assert/log/flags

* Fixed and added assertions for wStream

* Unified stream length checks

* Added new function to check for lenght and log
* Replace all usages with this new function

* Cleaned up PER, added parser logging

* Cleaned up BER, added parser logging

* log messages

* Modified Stream_CheckAndLogRequiredLengthEx

* Allow custom format and options
* Add Stream_CheckAndLogRequiredLengthExVa for prepared va_list

* Improved Stream_CheckAndLogRequiredLength

* Now have log level adjustable
* Added function equivalents for existing logger
* Added a backtrace in case of a failure is detected

* Fixed public API input checks
2022-04-19 14:29:17 +02:00
akallabeth
1319c08bba Cleaned up use of rdpSettings in channels 2022-03-28 15:52:32 +02:00
Armin Novak
e5b50c550b Use GetComputerName instead of gethostname 2022-03-22 10:59:58 +01:00
Armin Novak
4d03d7c0bf Freerdp remove #ifdef HAVE_CONFIG_H 2022-03-03 11:26:48 +01:00
Armin Novak
b2ad47a809 Reorganized FreeRDP headers 2022-03-03 11:26:48 +01:00
akallabeth
8cc6582044
Unify struct definitions (#7633)
* Unified enum/struct definitions, fixed include issues

* Fixed mac compilation issues

* Added missing include

* Fixed windows server build warnings

* Fixed VS2010 build issue

* Removed unnecessary library linking

* Fixed ThreadPool WinXP compatibility

* Fixed pr review remarks
2022-02-14 14:59:22 +01:00
akallabeth
7dedfbb0b0 Added support for getpwuid_r, replaced duplicate code
* Use GetUserNameExA to get current user name when required.
* Add support for getpwuid_r if available
2022-01-25 15:33:04 +01:00
james
2d4850de66 Fix hotplug 2022-01-25 08:49:46 +01:00
Armin Novak
3c72cc3306 Refactored rdpdr and dependent channels
* Move parsing code to core library
* Move definitions to public API to allow access from outside
* Move smartcard related parsing to core library
2022-01-11 12:34:43 +01:00
Armin Novak
298c0f52db Fixed missing return check 2021-12-14 13:46:34 +01:00