Commit Graph

2947 Commits

Author SHA1 Message Date
akallabeth f2e90eca34
[windows,32bit] fix VCAPITYPE consistency
Fixes #10581
2024-09-16 14:15:59 +02:00
akallabeth befa4233ad
[warnings] fixed bugprone-not-null-terminated-result 2024-09-16 08:22:42 +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 4d2197eab0
[return checks] fix use of TerminateThread 2024-09-16 06:48:11 +02:00
akallabeth 94020c183c
[return checks] fix use of ResetEvent 2024-09-16 06:48:09 +02:00
akallabeth 7c8c14294f
[return checks] fix use of ReleaseMutex 2024-09-16 06:48:06 +02:00
akallabeth 7d67b8e204
[return checks] fix use of SetEvent 2024-09-16 06:47:58 +02:00
akallabeth a4a7019f97
[channels,rdpdr] fix uninitialized warnings 2024-09-15 09:58:41 +02:00
akallabeth 687f946999
[channels,rdpear] fix length checks for 32bit size_t 2024-09-15 09:07:53 +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 2bcf2c50eb
[channels,rdpear] fix krb5 inclusion
* do not expose the krb5 include path in interface library, it is
  private to the object library
* fix include krb5.h instead of krb5/krb5.h
2024-09-14 21:29:18 +02:00
akallabeth 0b9d35235b
[channels,rdpear] fix leak in rdpear_prepare_response 2024-09-14 08:31:29 +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 f0a73e3e9c
[channels,rdpear] fix inconsistencies in ndr.c/h 2024-09-14 08:24:38 +02:00
akallabeth 1c161b0270
[channels,rdpear] elimiate warnings 2024-09-14 08:24:35 +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 7ef9345743
Merge pull request #10549 from hardening/rcg2
core, channels: client-side remote credential guard
2024-09-13 08:24:14 +02:00
akallabeth 7ebefc505f
[warnings] fix some msbuild warnings 2024-09-12 13:32:41 +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 31ef07ead7
[warnings] fix tautological unsigned zero compare 2024-09-11 20:50:30 +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 edf6ab89f7
[warnings] fix dead store 2024-09-10 14:43:11 +02:00
akallabeth 674e84cbf3
[channels,location] fix cast warning 2024-09-10 14:43:08 +02:00
akallabeth 52ee2e4668
[cmake] unify ffmpeg and swscale detection 2024-09-09 12:20:17 +02:00
akallabeth 6a64fe121b
Merge pull request #10569 from akallabeth/fprintf-void
Fprintf void
2024-09-06 10:44:32 +02:00
akallabeth db8e340604
[rdpgfx,client] debug caps version as string 2024-09-06 09:35:23 +02:00
akallabeth 2170cc65e3
[warnings] cast return of fprintf (void)
fprintf returns a value. Not using it is mostly fine, but it generates
noise when compiling with all warnings on, so cast to (void)
2024-09-06 09:16:21 +02:00
akallabeth 245afb706c
[function pointers] unify casts with macro 2024-09-04 20:06:45 +02:00
akallabeth 1a9766e190
[warnings] fix function pointer casts 2024-09-04 20:06:43 +02:00
akallabeth ff62730419
[channels] fix function pointer casts
* Cast freerdp_load_channel_addin_entry return with a union (removes the
  incompatible function pointer cast warnings)
* Typedef function pointers in tables.h
2024-09-04 09:12:41 +02:00
akallabeth fe6d861a5c
[channels] fix VCAPITYPE for all channel entry points 2024-09-03 17:26:58 +02:00
akallabeth 491c884c7a
[cmake] remove casts from tables.c 2024-09-03 15:15:08 +02:00
akallabeth b77d6e8550
[channels] fix function pointer casts
* Cast freerdp_load_channel_addin_entry return with a union (removes the
  incompatible function pointer cast warnings)
* Typedef function pointers in tables.h
2024-09-03 15:13:58 +02:00
akallabeth baa70d1ab6
[warnings] fix compare integers of different signs 2024-09-03 15:10:46 +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 ec73265268
[channels,rail] fix unused variable warnings 2024-08-29 17:13:57 +02:00
akallabeth bd637c6cd1
[warnings] fix various clang-tidy warnings 2024-08-29 17:13:50 +02:00
akallabeth cc626276d0
[warnings] integer cast and checks 2024-08-29 15:49:33 +02:00
akallabeth 47e40dd7a5
[warnings] fix clang-tidy issues in channels 2024-08-29 15:34:25 +02:00
akallabeth 9c9d74e920
[warnings] fix redundant casts 2024-08-29 12:03:09 +02:00
akallabeth af813a0929
[cmake,clang-tidy] do not use explicit .clang-tidy
if not explicitly added the nearest .clang-tidy file to the compiled
source is used.
2024-08-29 11:18:36 +02:00
akallabeth 15456e1ee1
[warnings] fix implicit widening conversion 2024-08-29 10:47:20 +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
Armin Novak 7aae7896ae
[channels,rail] fix use after free 2024-08-27 09:08:15 +02:00
akallabeth 7f13d1993d
[channels,rail] simplify sending
* Fix #5347: Do not create useless copy of data to send.
2024-08-26 14:14:47 +02:00
akallabeth 00eb86970d
Merge pull request #10510 from akallabeth/serial-cleanup
Serial cleanup
2024-08-26 13:47:10 +02:00
akallabeth 7054b26916
[channels,parallel] compilation checks
* Only compile channel related command line if enabled
* Warn on unsupported platforms
2024-08-26 13:30:30 +02:00
akallabeth 387dabc4dd
[channels,serial] add CMake messages
Inform user about platforms that do not support serial redirection
2024-08-26 13:26:15 +02:00
akallabeth 1ec18ce827
[channels,serial] default to off on APPLE 2024-08-26 13:23:09 +02:00
akallabeth d08e44d883
[channels,serial] only build on linux
* Guard by CMake
* Remove code #ifdef to ease porting
2024-08-26 13:18:52 +02:00
akallabeth eb7d8fdeb0
[channels,serial] improve command line parsing
* Gracefully exit on invalid serial driver
* Gracefully exit on onvalid serial port flags
2024-08-26 12:37:03 +02:00
akallabeth 0b21fddef6
[channels,serial] improve IRP processing logging 2024-08-26 12:37:01 +02:00
akallabeth df04e4c888
[channels,parallel] unify IRP processing logging 2024-08-26 12:36:58 +02:00
akallabeth 1ca069c771
[channels,serial] fix IrpThread handling
* Proper terminated threads cleanup
* Proper remaining threads termination on close
2024-08-26 12:35:54 +02:00
akallabeth 348ddf61c0
[channels,serial] delay IRP thread start
wait until irp_thread_func has completed before starting the thread.
This prevents a race condition when accessing the IRP structure which is
freed up once the thread terminates.
2024-08-26 12:35:51 +02:00
akallabeth 652c5310f2
[channel,serial] cleanup code
* WINPR_ASSERT arugments
* remove use of restricted keywords (variables/functions starting with _)
* Better logging and error checks
2024-08-26 12:23:04 +02:00
akallabeth 56d660f258
[cmake] mark dependency includes SYSTEM
Mark all dependency include paths SYSTEM so warnings from system headers
are excluded from ci warning statistics
2024-08-26 11:10:49 +02:00
akallabeth 86e2789d9b
[coverity] fix warnings 2024-08-26 09:19:06 +02:00
Armin Novak 17d44e847f
[coverity] fix various warnings 2024-08-21 09:47:34 +02:00
Armin Novak fe76bafd57 [channels,drive] fix out of bound access 2024-08-21 09:20:25 +02:00
akallabeth 1e19ccd76d
[channels,cliprdr] refactor cliprdr_packet_format_list_new
* Simplify function
* Add missing arguments for ASCII names
2024-08-14 09:19:51 +02:00
David Fort 6e2cc358ba cliprdr: fix message of error code log 2024-08-13 15:08:30 +02:00
Armin Novak 83b253dc84
[channels,cliprdr] fix cliprdr_packet_format_list_new
* Fix length calculations
* Fix format name write, skip empty strings
2024-08-12 13:23:33 +02:00
Mikhail Kashin 5c471974ba [channels,disp] fix typo in monitor->height 2024-08-05 23:54:08 +03:00
akallabeth 776083234b
[warnings] fix unused-but-set-variable 2024-07-23 09:14:19 +02:00
akallabeth ef5d9945cd
[channels,tsmf] fix deprecations and warnings 2024-07-22 15:40:08 +02:00
akallabeth 35d1182ff5
[channels,tsmf] fix deprecation warnings 2024-07-22 15:08:38 +02:00
Armin Novak 1b2533674b
[channels,cliprdr] stringify logged values 2024-07-17 11:27:51 +02:00
James Fu 0755325f77
[channels,rdpdr] fix drive redirection hotplug
Currently, after receiving PAKID_CORE_USER_LOGGEDON, the client will
switch to RDPDR_CHANNEL_STATE_USER_LOGGEDON, send Device List
Announce, then switch back to RDPDR_CHANNEL_STATE_READY.  As a result,
any drives mounted later will not be announced.
2024-07-10 17:06:47 +02:00
James Fu 75dfcabe91 [channels,rdpdr] fix state check 2024-07-09 22:54:15 +08:00
akallabeth 20c3fc327f
[channels,drdynvc] ignore thread priority failures
If the thread priority of the dynamic channel can not be adjusted treat
this as warning and not as fatal error.
2024-07-08 12:21:02 +02:00
Armin Novak fb26dd4185
[channels,rdpgfx] enable GfxSendQoeAck 2024-07-03 15:52:28 +02:00
akallabeth 4099bd4e45
[warnings] integer casts/checks 2024-07-02 12:38:00 +02:00
akallabeth 9a2a1c3717
[channel,drive] fix directory traversal detection
filter out .. part of the file or directory name.
2024-07-01 17:10:23 +02:00
akallabeth 8e81d24e14
[channels,drdynvc] only set thread priority if we have one 2024-06-25 14:38:12 +02:00
Felix Deimel a424bab451 [rdpsnd,ios] Fix rdpsnd_ios_open method signature
Fixes compilation with WITH_IOSAUDIO
2024-06-21 12:34:00 +02:00
akallabeth 0d974acab2
[channel,rdpecam] keep off by default
channel is still experimental, keep it off by default, allow enabling
with default channel CHANNEL_RDPECAM_CLIENT=ON switch
2024-06-17 13:33:00 +02:00
akallabeth b3810e3b85
[channel,rdpecam] add option RDPECAM_CLIENT_CHANNEL_STUB
this allows building FreeRDP with only a stubbed [MS-RDPECAM] channel
2024-06-17 13:13:07 +02:00
oleg0421 f48c8eacad [channel,rdpecam] framerate support and h264 bitrate tuneup 2024-06-15 19:05:35 -07:00
Armin Novak c4594bc7cb
[channel,rdpecam] fix compiler warnings and leaks 2024-06-12 10:27:50 +02:00
Armin Novak 1806daa375
[channel,server] fix unguarded use of functions
If functions of channel_<name>_server are used guard them so the code
compiles if the channel is not compiled in.
2024-06-12 09:58:08 +02:00
akallabeth 4a71bf8bc8
[channels,rdpecam] fix missing link libraries
* add ffmpeg libraries
* change channel error checks, only FFMPEG supported currently
2024-06-11 12:12:00 +02:00
akallabeth 2831d2f5ec
[cmake] fix add_channel_client and add_channel_server
only add the channels if they are activated (e.g. both,
CHANNEL_<NAME> and CHANNEL_<NAME>_CLIENT or CHANNEL_<NAME>_SERVER are
defined)
2024-06-11 11:39:25 +02:00
akallabeth 8a0706b6b7
[channels,rdpecam] use default CHANNEL_RDPECAM_CLIENT
* use default CMake variable for channels
* set default depending on CMAKE_SYSTEM_NAME (currently only linux is
  supported)t
2024-06-11 10:17:31 +02:00
oleg0421 a81d111ac4
RDPECAM client: new rdpecam channel 2024-06-10 14:48:45 +02:00
Andrey Af 5f26c013ed
[server,rdpdr] fixed HashTable equal keys func 2024-06-07 10:08:46 +02:00
akallabeth c07ba558cb
[warnings] fix various compiler warnings 2024-06-04 13:23:24 +02:00
akallabeth 0dc9a46d53
Merge pull request #10213 from akallabeth/thread-prio
Thread prio
2024-05-24 16:02:49 +02:00
akallabeth 3b895deb97
[channels,drdynvc] set thread priority 2024-05-24 15:44:20 +02:00
akallabeth c6b7b87f8f
[channels,rdpgfx] use FreeRDP_GfxSuspendFrameAck 2024-05-24 11:52:02 +02:00
akallabeth 5475f3fc24
[channels,rdpgfx] use static stream 2024-05-21 14:56:53 +02:00
akallabeth 23229859d7
[channel,cliprdr] warn on invalid msgFlags in requests 2024-05-16 18:27:38 +02:00
akallabeth 1b8221e5bf [warnings] fix various minor warnings 2024-05-08 14:53:39 +02:00
akallabeth 6ce8bc3e98 [channels,rdpdr] remove dead code. 2024-04-21 11:00:47 +02:00