Commit Graph

2932 Commits

Author SHA1 Message Date
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
akallabeth
71e78bedd7 [warnings] fixed sign and const
* fix various char/BYTE sign warnings
* fix various const warnings
* fix format string size_t
* remove unused CMake variables
2024-04-18 11:05:58 +02:00
akallabeth
5301603548 [channels,rdpgfx] fix memory leak on error 2024-04-16 21:20:04 +02:00
Armin Novak
2500fb7bfb [cleanup] refactor some checks 2024-04-15 12:40:01 +02:00
akallabeth
122a35fb73 [coverity] 1543932 Resource leak 2024-04-12 13:30:35 +02:00
akallabeth
a8ce0aee29 [coverity] 1543213 Dereference before null check 2024-04-12 12:41:42 +02:00
akallabeth
e88cb403bb [coverity] 1543930 Dereference after null check 2024-04-12 12:41:42 +02:00
akallabeth
581c9f1798 [channels,parallel] clean up code 2024-04-12 12:41:42 +02:00
akallabeth
7b0723efd2 [coverity] 1543048 Dereference before null check 2024-04-12 09:45:09 +02:00
akallabeth
8c580e6d6d [coverity] 1543073 Resource leak 2024-04-12 09:45:09 +02:00
akallabeth
4236f46b33 [coverity] 1543262 Resource leak 2024-04-12 09:45:09 +02:00
akallabeth
e63d4666a0 [coverity] 1543273 Resource Leak 2024-04-12 09:45:09 +02:00
akallabeth
80f85cdd55 [coverity] 1543238 Resource leak 2024-04-12 09:45:09 +02:00
akallabeth
b7f369bfe0 [coverity] 1543063 Out-of-bounds access 2024-04-11 12:04:07 +02:00
Martin Fleisz
14cdd6a105 location: Increase buffer size for printing channel info
The current buffer size of 32 bytes was too small to hold the version
info string which resulted in a non-null terminated buffer (_snprintf
does not null-terminate the buffer if it is too small) being printed.
2024-04-11 11:18:43 +02:00
Ilya Shipitsin
822537be0e channels/cliprdr/client/cliprdr_main.c: fix resource leak
found by coverity

655        if (Stream_Write_UTF16_String_From_UTF8(s, tmpDirCharLen - 1, tempDirectory->szTempDir,
656                                                ARRAYSIZE(tempDirectory->szTempDir), TRUE) < 0)

CID 424748: (#1 of 1): Resource leak (RESOURCE_LEAK)
9. leaked_storage: Variable s going out of scope leaks the storage it points to.
657                return ERROR_INTERNAL_ERROR;
658        /* Path must be 260 UTF16 characters with '\0' termination.
659         * ensure this here */
2024-04-08 11:39:20 +02:00