Commit Graph

3709 Commits

Author SHA1 Message Date
akallabeth
a1a8846ad2
[utils,proxy] refactor proxy_parse_uri
* eliminate deadstore warnings
* fix missing input checks
2024-10-01 13:05:14 +02:00
akallabeth
1145eb0fc9
[core,gateway] annotate bugprone-sizeof-expression 2024-10-01 13:04:47 +02:00
akallabeth
490ca0453b
[winpr,stream] use Stream_BufferAs instead of casting 2024-10-01 10:34:42 +02:00
akallabeth
11b7633dc0
[channels] use Stream_BufferAs
For WTSVirtualChannelRead and WTSVirtualChannelWrite use Stream_BufferAs
to cast to correct type.
2024-10-01 10:28:13 +02:00
akallabeth
a85068d42e
[core,gateway] allow websocket write up to UINT32_MAX 2024-10-01 10:14:03 +02:00
akallabeth
47c5070805
Merge pull request #10635 from akallabeth/initialize-variables
Initialize variables
2024-09-30 16:04:20 +02:00
akallabeth
aa47e58f11
[core,settings] disable clang-tidy warning
we allocate a UINT32** using calloc and casting it. This allows freeing
this up with free but yields some warnings. Disable for this specific
case
2024-09-30 15:41:45 +02:00
akallabeth
c319541f0d
[core,settings] add unit test
Test cases for freerdp_settings_check_client_after_preconnect
2024-09-30 15:41:31 +02:00
akallabeth
d71c9c566a
[core,settings] monitor configuration check
* fix origin check, might not be primary monitor
* fix a memory leak
2024-09-30 15:41:23 +02:00
akallabeth
dd98b20f4a
[core,utils] improve utils_str_is_empty 2024-09-30 09:32:15 +02:00
akallabeth
c470b23795
Merge pull request #10672 from akallabeth/multimon-warn
Multimon warn
2024-09-27 10:44:06 +02:00
Martin Fleisz
9ec3d9dc0b
Merge pull request #10679 from akallabeth/rdpei-no-thread
Rdpei no thread
2024-09-27 09:58:44 +02:00
akallabeth
cf809e6388
[core,settings] add settings validation
after client side preconnect validate the settings.
Currently checks for some monitor layout limitations are implemented
2024-09-27 09:44:40 +02:00
akallabeth
f400b9a602
[core,client] fix freerdp_channels_check_fds
unify freerdp_channels_check_fds and
freerdp_channels_process_pending_messages as they both do the same
thing.
2024-09-26 17:01:14 +02:00
akallabeth
ab88e79a36
[core,mcs] unify message channel handling 2024-09-26 16:57:27 +02:00
akallabeth
5e13d5bf16
[core,connection] handle message channel in state
When in demand active it is possible that we can receive message channel
messages. In case we receive one switch parsing to the appropriate
handlers.
2024-09-26 14:38:59 +02:00
akallabeth
b1cc0a3191
[proxy,modules] eliminate unused variables 2024-09-24 19:45:16 +02:00
akallabeth
0fe89241f8
[core,client] add argument checks & assertions
* freerdp_get_event_handles
* freerdp_channels_process_pending_messages
2024-09-24 11:08:38 +02:00
akallabeth
26003e59cc
[va_list] initialize with ={0}; 2024-09-24 11:06:18 +02:00
akallabeth
82a43ef4dc
[core,client] add channel poll registration API
Add a new API that allows channels to register/unregister an
event-handle along with a callback function to be called by the RDP main
thread.
This allows background processing of channel specifics without the need
for a channel specific thread.
2024-09-24 10:10:52 +02:00
akallabeth
239440e28d
[warnings] remove or comment unused macros 2024-09-20 18:49:38 +02:00
Armin Novak
c7c84682e1
[warnings] fix mismatched-dealloc
Some allocator functions have an error path where the corresponding free
function is called. Since the memory in the allocator function was
allocated using malloc/calloc the free function does not match. Silence
warnings with pragma macros
2024-09-18 15:35:28 +02:00
Vic Lee
5f37b54847 [core,gateway] migrate rpc gateway to use new transport layer. 2024-09-18 15:39:34 +08:00
akallabeth
586f40631f
[warnings] fix shorten-64-to-32 2024-09-17 16:13:48 +02:00
akallabeth
c7efbf5b8e
[core,proxy] fix nonblocking BIO reads
* In case of non-blocking BIO layers the proxy read functions bailed
  out with an error. Retry reading in that case unless the
  TcpConnectTimeout is exceeded
* Terminate proxy read operations if rdpContext::abortEvent is set
2024-09-17 10:37:19 +02:00
akallabeth
f2e90eca34
[windows,32bit] fix VCAPITYPE consistency
Fixes #10581
2024-09-16 14:15:59 +02:00
akallabeth
a19305569d
[assert] fix ULONG_MAX use
most of the time this was used to check ULONG limits. Replace with
correct UINT32_MAX
2024-09-16 08:22:40 +02:00
akallabeth
bb242b9a89
[return checks] fix use of WaitForSingleObject 2024-09-16 08:22:37 +02:00
akallabeth
965d231e49
[return checks] fix use of CloseHandle 2024-09-16 08:22:31 +02:00
akallabeth
cd18dea174
[return checks] fix use of unicode functions 2024-09-16 06:48:26 +02:00
akallabeth
f655843260
[return checks] fix use of rdpSettings getter/setter 2024-09-16 06:48:23 +02:00
akallabeth
c0d06c782b
[return checks] fix missing checks
* Stream_EnsureRemainingCapacity
* rdp_client_transition_to_state
2024-09-16 06:48:19 +02:00
akallabeth
94020c183c
[return checks] fix use of ResetEvent 2024-09-16 06:48:09 +02:00
akallabeth
7d67b8e204
[return checks] fix use of SetEvent 2024-09-16 06:47:58 +02:00
akallabeth
0de75b305c
[warnings] fix unchecked return 2024-09-15 10:19:56 +02:00
akallabeth
ba41d5e532
[warnings] fix unchecked return 2024-09-15 09:08:02 +02:00
akallabeth
8b6091a007
[winpr,wtsapi] improve API usage
* Mark WTSVirtualChannelOpen and WTSVirtualChannelOpenEx with
  WINPR_ATTR_MALLOC to enforce compiler checks for resource cleanup
* Fix unused result warnings, use the result or cast to (void) where not
  requierd
2024-09-14 21:29:31 +02:00
akallabeth
a1cef8dd85
[warnings] silence and fix unused results 2024-09-14 21:29:28 +02:00
akallabeth
9cfd748b63
[core,nla] nla_read_TSRemoteGuardPackageCred
* fix maybe uninitialized arguments
* fix return in case of invalid packet
2024-09-14 21:29:24 +02:00
akallabeth
d5b41bb8a0
[warnings] fix casts
* Add macro WINPR_REINTERPRET_CAST to cast (checked) from type A to B
* Fix cast warnings
2024-09-14 08:24:51 +02:00
akallabeth
d7f6cf90b4
[core,nla] add missing static for function 2024-09-14 08:24:43 +02:00
akallabeth
71080e61b0
[warnings] fix a bunch of them
* fix uninitialized variable warnings
 * modivy ndr_context_* functions to utilize WINPR_ATTR_MALLOC
 * build_krbtgt use winpr_asprintf
 * add proper Stream_Write_UINT64_BE
2024-09-14 08:24:28 +02:00
akallabeth
16cec716e0
[strtok] replace function with strtok_s
Since strtok is not thread safe replace it with strtok_s (WinPR wrapper
around strtok_r for systems not supporting the ISO function names)
2024-09-13 21:19:17 +02:00
akallabeth
7ef9345743
Merge pull request #10549 from hardening/rcg2
core, channels: client-side remote credential guard
2024-09-13 08:24:14 +02:00
akallabeth
163aec7e2b
[warnings] fix documentation command unknown 2024-09-12 21:21:41 +02:00
akallabeth
c84655cd62
[warnings] remove const params
Avoid const TYPE* const type declarations
2024-09-12 14:29:25 +02:00
akallabeth
7ebefc505f
[warnings] fix some msbuild warnings 2024-09-12 13:32:41 +02:00
akallabeth
e00661d338
[warnings] fix dead store warnings 2024-09-12 13:29:46 +02:00
akallabeth
c9b0c9ecd5
[warnings] remove unused variables 2024-09-12 10:08:10 +02:00
akallabeth
cc6850bf21
[warnings] fix format nonliteral
add pragma to suppress format nonliteral warnings where appropriate
2024-09-12 09:08:53 +02:00
akallabeth
384cd284d8
[warnings] use WINPR_CAST_CONST_AWAY
on locations that require (ugly) const to non const casts usw
WINPR_CAST_CONST_AWAY to do proper compiler specific casts to avoid
warnings
2024-09-11 23:41:50 +02:00
akallabeth
265246cdfc
[core,activation] allocate buffer with calloc 2024-09-11 21:03:20 +02:00
akallabeth
ae95b66922
[warnings] fix portability [cm]alloc size 0 2024-09-11 20:50:33 +02:00
akallabeth
403ee7ad4c
[core,activation] simplify rdp_write_client_persistent_key_list_pdu 2024-09-11 20:48:46 +02:00
David Fort
a4bd5ba886 core, channels: client-side remote credential guard
This patch implements the client-side part of the remote credential guard feature
as described in MS-RDPEAR. The 2 main changes are: shipping the TSRemoteGuardaCreds in
NLA, and implement the rdpear channel that allows LSASS to remote all the calls to
our client. For now it's UNIX only as the windows implementation would be implemented
in a completely different way.
To test, you may establish you ccache and then connect with (RCG enabled on the server):
	xfreerdp /remoteGuard /u:<user> /d:<domain> /v<server>

That should log you in, and in the session you should not be asked for credentials when
doing mstsc /remoteGuard /v:<other server>.
2024-09-11 17:15:11 +02:00
akallabeth
4253426e48
[core,transport] follow up to #10576
document the behaviour and reference the place it is used to avoid
confusion on future code review
2024-09-09 13:43:43 +02:00
Vic Lee
929e4bdf8d [core,transport] fix ssl info callback function signature and some warnings. 2024-09-09 17:42:14 +08:00
akallabeth
02d9d56536
Merge pull request #10563 from llyzs/transport_io
Add new transport io layer design and support custom socket.
2024-09-06 15:18:20 +02:00
Vic Lee
ae05778644 [core,transport] add new transport io layer design and support custom socket. 2024-09-05 20:59:21 +08:00
akallabeth
6a1c3b4545
[function pointer] use macro for GetProcAddress
Cast all results of GetProcAddress with WINPR_FUNC_PTR_CAST
2024-09-04 21:31:48 +02:00
akallabeth
245afb706c
[function pointers] unify casts with macro 2024-09-04 20:06:45 +02:00
akallabeth
f3d84d4557
[warnings] use ARRAYSIZE macro 2024-09-03 15:10:58 +02:00
akallabeth
baa70d1ab6
[warnings] fix compare integers of different signs 2024-09-03 15:10:46 +02:00
akallabeth
5a4a1a40ad
fix declaration and implementation parameter names 2024-09-03 12:24:53 +02:00
akallabeth
f7fd817d1c
[warnings] fix redundant casting 2024-09-03 12:24:51 +02:00
Armin Novak
fe4cb6de65
[warnings] fix float/double warnings 2024-09-02 16:20:20 +02:00
akallabeth
5887f8a558
[warnings] suppress warnings
Some warnings can not be solved as they depend on external libraries or
limitations of the C standard.
Suppress these warnings selectively
2024-08-30 15:40:16 +02:00
akallabeth
190929c018
[warnings] fix function pointer casts 2024-08-30 15:40:01 +02:00
akallabeth
f22018302f
[warnings] revert some mismatching function declarations 2024-08-30 08:39:30 +02:00
akallabeth
bd637c6cd1
[warnings] fix various clang-tidy warnings 2024-08-29 17:13:50 +02:00
akallabeth
36c3184a0f
[warnings] fix clang-tidy issues in libfreerdp 2024-08-29 15:34:22 +02:00
akallabeth
9c9d74e920
[warnings] fix redundant casts 2024-08-29 12:03:09 +02:00
akallabeth
15456e1ee1
[warnings] fix implicit widening conversion 2024-08-29 10:47:20 +02:00
akallabeth
4439240fd3
Merge pull request #10525 from akallabeth/warn-fixes-err33-c
[warnings] fix cert-err33-c
2024-08-29 10:35:57 +02:00
akallabeth
1d33095500
[warnings] fix cert-err33-c
Fix unused return values, cast to void if on purpose
2024-08-29 10:19:27 +02:00
akallabeth
622fcc7025
[warnings] fix types and guards
Fix some broken define guards and a wrong return type
2024-08-29 09:53:48 +02:00
akallabeth
eeba99d73e
Merge pull request #10523 from akallabeth/autoreconnect-fix
[core,client] flush pending channel messages
2024-08-28 16:42:05 +02:00
akallabeth
380c5808a0
Merge pull request #10518 from akallabeth/clang-tidy-cleanup
Clang tidy cleanup
2024-08-28 16:36:16 +02:00
akallabeth
4ccfbc96ac
[core,client] flush pending channel messages
on disconnect flush all pending messages to avoid sending on reconnect.
2024-08-28 14:13:28 +02:00
Armin Novak
03449da9e9
[warnings] fix uninitialized variables 2024-08-28 10:46:40 +02:00
Armin Novak
d71af44bb1
[warnings] disable warnings for generated code
* Disable clang-tidy in test build directories
* Disable compiler warnings for test binary directories.

These contain generated code we can not change, so the warnings are just noise
2024-08-28 09:18:30 +02:00
David Fort
f1b299c3e2 core: relax check in freerdp_peer_new
Not all socket kinds have the TCP_NODELAY option (especially local UNIX sockets),
so don't make the setsockopt fatal.
2024-08-26 19:53:49 +02:00
akallabeth
679de71056
[core,nla] remove platform guards for PasswordHash
Fixes #10507: do not ask for password if PasswordHash is supplied on
windows.
2024-08-26 09:23:55 +02:00
Armin Novak
17d44e847f
[coverity] fix various warnings 2024-08-21 09:47:34 +02:00
akallabeth
4286a4c164
[core,tcp] retry all DNS entries until success
When resolving some DNS name with getaddrinfo try all returned entries
matching the configuration (IPv4|IPv6|any) until the socket can be
connected. Fixes #5335
2024-08-20 13:10:12 +02:00
akallabeth
63d87dcf18
[core,update] ensure EndPaint before DesktopResize
When DesktopResize is called EndPaint might not have been. Ensure the
update-lock is released and data flushed before resizing.
2024-08-20 09:54:56 +02:00
akallabeth
11b7ca4753
fix #10449 2024-08-08 08:16:40 +02:00
akallabeth
86f2b1e26a
[core,capabilities] skip stream bytes read in substream 2024-07-25 11:19:15 +02:00
akallabeth
2f5570cd67
Merge pull request #10423 from akallabeth/action_script
[client,X11] fix ActionScript
2024-07-25 10:00:26 +02:00
Armin Novak
44b07721ec
[client,X11] fix ActionScript
* Unify script calls
* Update documentation
* Fix home directory
2024-07-25 09:42:03 +02:00
Armin Novak
f167ccff4e
[core,capabilities] Fix SurfaceCommandsSupported
* Initialize in settings_new with everything supported
* merge client & server settings
* Write capabilities from current SurfaceCommandsSupported setting
2024-07-24 21:54:54 +02:00
Armin Novak
850389de44
[core,capabilities] pass RemoteFxRlgrMode and RemoteFxCodecMode 2024-07-24 21:54:51 +02:00
Armin Novak
22585a31ce
[core,capabilities] fix NSCodecId and SurfaceCommandsSupported parsing 2024-07-24 21:54:42 +02:00
Armin Novak
96b945aa83
[settings] Added SurfaceCommandsSupported setting 2024-07-24 21:54:39 +02:00
Armin Novak
e888769bf6
[core,capabilities] fix RFX capability parsing
* Require SURFCMDS_STREAM_SURFACE_BITS
* Improve error logging
* Improve content length checks
2024-07-24 21:54:30 +02:00
Armin Novak
268bf25f02
[settings] add RemoteFxRlgrMode setting 2024-07-24 21:54:26 +02:00
Armin Novak
9e71b423cd
[warnings] fix various compiler warnings 2024-07-24 11:08:20 +02:00
akallabeth
776083234b
[warnings] fix unused-but-set-variable 2024-07-23 09:14:19 +02:00
Armin Novak
a332613ea1
[core,update] force deactivate AsyncUpdate
With recent releases various race conditions with AsyncUpdate have been
found. As there is no easy way to properly fix this deactivate it for
the time being and warn users about it.
2024-07-22 10:24:11 +02:00
akallabeth
3cd3f9a126
[core,gateway] add NULL checks in send function 2024-07-16 15:45:27 +02:00