Commit Graph

2930 Commits

Author SHA1 Message Date
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
Ilya Shipitsin c7954ad0f3 channels/urbdrc/client/data_transfer.c: fix resource leak
found by coverity

705        if (transferDir == USBD_TRANSFER_DIRECTION_OUT)
706        {
      18. Condition !Stream_CheckAndLogRequiredLengthEx("com.freerdp.channels.urbdrc.client" /* "com.freerdp.channels.urbdrc.client" */, 3, s, OutputBufferSize, 1, "%s(%s:%zu)" /* "%s(%s:%zu)" */, <anonymous>, "/home/runner/work/FreeRDP/FreeRDP/channels/urbdrc/client/data_transfer.c", 707UL /* (size_t)707 */), taking true branch.
707                if (!Stream_CheckAndLogRequiredLength(TAG, s, OutputBufferSize))

CID 424733: (#1 of 1): Resource leak (RESOURCE_LEAK)
19. leaked_storage: Variable out going out of scope leaks the storage it points to.
708                        return ERROR_INVALID_DATA;
709                Stream_Copy(s, out, OutputBufferSize);
710        }
2024-04-08 11:39:20 +02:00
akallabeth 678ff144ab [cmake] unify windows resource file generation
* use a macro to add resource files for executables and shared libraries
* use that macro to declare targets
* use that macro to set library/binary versioning
* use that macro to set target output name
* use a macro to create manpages and names
2024-03-20 11:17:18 +01:00