Commit Graph

2838 Commits

Author SHA1 Message Date
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
Armin Novak
ea9e219867 [channels,rail] print handshakeEx flags 2024-03-20 10:00:57 +01:00
akallabeth
15cf6b26b1 [channesl,oss] fix OSS detection
* generate a include header depending on where the soundcard.h file was
  found as that is in system paths that must not be added to the include
  search paths.
* fix detection, the if/else was mixed up and completely broken.
2024-03-20 09:11:08 +01:00
akallabeth
b9a1f791f7 [channels,drive] fix wrong function usage
_wcslen is for WCHAR, wcslen for wchar_t
2024-03-18 13:27:32 +01:00
akallabeth
75ca810d96 [channels,location] fix sending location messages 2024-03-18 08:41:17 +01:00
akallabeth
222f386d7e [channels,location] add debug location output 2024-03-18 08:41:17 +01:00
akallabeth
473fbcf51d [channels,location] fix send pdu size 2024-03-18 08:41:17 +01:00
akallabeth
8fb421dd3a [channels,rdpecam] add client channel stub 2024-03-18 08:41:17 +01:00
Armin Novak
35430cf191 [channel,client] update channel pointer
in generic_on_new_channel_connection set the channel pointer to the
current value.
2024-03-14 16:05:51 +01:00
Armin Novak
98aeb54e83 [channel,location] fix broken length check 2024-03-14 16:05:51 +01:00
akallabeth
f764b0a854 [channels,location] implement client channel
* provide client side callbacks to implement platform specific location
  backend glue code
2024-03-11 13:22:12 +01:00
Vic Lee
33416fd3ac [channels,printer] support printer channel in synchronous mode. 2024-03-07 11:40:44 +01:00
ddoe
d590b67ac4 Prevent printer closing when a job is closed
It prevents future job to print
2024-03-04 14:38:37 +01:00
akallabeth
9a7d30d174 [clang,tidy] fix a few warnings 2024-02-27 14:15:43 +01:00
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
akallabeth
b894199f72 [winpr,collections] add generic string clone functions
The ArrayList, HashTable, ... New functions require
void* (*fkt)(const void* ptr) type functions. Provide a generic wrapper
for CHAR and WCHAR strdup to eliminate warnings. Also export a
corresponding free function to avoid issues with runtime
differences.
2024-02-15 11:49:16 +01:00
akallabeth
0e44b2c674 [clang-tidy] clang-analyzer-unix.Malloc 2024-02-15 11:49:16 +01:00
akallabeth
b8598728a6 [clang-tidy] clang-analyzer-core.uninitialized.Assign 2024-02-15 11:49:16 +01:00
akallabeth
81d2c1f057 [clang-tidy] clang-analyzer-core.NullDereference 2024-02-15 11:49:16 +01:00
akallabeth
f69e1fe697 [clang-tidy] readability-duplicate-include 2024-02-15 11:49:16 +01:00
akallabeth
0ba995655d [clang-tidy] cppcoreguidelines-init-variables 2024-02-15 11:49:16 +01:00
akallabeth
207def5c56 [clang-tidy] readability-isolate-declaration 2024-02-15 11:49:16 +01:00
akallabeth
e2e6d09256 [cmake] use DEFAULT_DEBUG_OPTION for all 2024-02-13 17:06:00 +01:00
akallabeth
ff1565b7ea [channel,tsmf] fix clang-tidy warnings 2024-02-12 09:28:09 +01:00
akallabeth
94a29e7b2c [channel,tsmf] fix issue with oss backend 2024-02-12 09:28:09 +01:00
akallabeth
2fffcd64b9 [winpr] use winpr_strerror instead of strerror
use the wrapper from WinPR to use the best implementation available.
2024-02-06 15:45:47 +01:00
akallabeth
ba8cf8cf21 [build] fix Wmismatched-deallocator warnings
With custom malloc function attributes the fail path in the _New
functions produces warnings due to allocator mismatches. Silence them.
2024-02-05 08:16:55 +01:00
akallabeth
bb42d425ed [gcc,clang] add support for attribute(malloc)
Mark all malloc like functions and add their appropriate free function
to let the compiler complain on mismatches
2024-02-02 15:10:40 +01:00
Vic Lee
5559e59f40 [channels] Add synchronous static channel setting. 2024-02-01 15:06:23 +01:00
akallabeth
5cb463e74b [channel,rdpgfx] disable client side caps
If no image scaling is available disable capabilities that require image
scaling to function properly
2024-01-29 19:26:18 +01:00
akallabeth
278a56263b [channels,rdpgfx] add server side channel checks
check if the message is allowed in current channel state.
2024-01-29 19:26:18 +01:00
akallabeth
01e415b801 [channel,rdpgfx] use dynamic WLog for server channel 2024-01-29 19:26:18 +01:00
Vic Lee
16206cb505 [channels,drdynvc] Add settings to enable synchronous dynamic channels. 2024-01-11 15:24:55 +01:00
Vic Lee
277ea28926 [channels,rdpgfx] fix potential stack corruption. 2024-01-11 13:44:47 +01:00
Armin Novak
650154b2e7 [channels,rdpgfx] add debug logs for server side
add debug logs for cache import offer and reply
2024-01-10 21:49:38 +01:00
Armin Novak
6e1bb4e1c3 [channels,gfx] default reply to cache import offer
by default we do not use the cache, so reply with 0 imported messages by default.
can be overridden by server implementations, but provides a sane default
if not.
2023-12-20 11:26:54 +01:00
Armin Novak
9575f386cd fixed WCHAR constants, use endian safe definitions 2023-12-20 09:03:58 +01:00
Armin Novak
28e5167435 [unicode] fix definition of _wcschr search char 2023-12-20 09:03:58 +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
Armin Novak
1d06edb8d9 [channels,tsmf] fix gstreamer detection 2023-12-05 08:33:12 +01:00
akallabeth
1b31852d32 [git] remove .gitignore
we do no longer allow in source builds, so remove all the .gitignore
files just hiding generated files
2023-11-28 12:14:55 +01:00
Armin Novak
4fd7a5cf16 [channels,tsmf] fix ffmpeg deprecation 2023-11-24 18:19:03 +01:00
Armin Novak
2e9ee7a583 [channels,rdpsnd] fix missing include 2023-11-24 18:19:03 +01:00
Armin Novak
854df33db1 [warnings] fix log_libusb_result empty format string 2023-11-24 18:19:03 +01:00
akallabeth
ceb7bd1d41 [warnings] fixed clang build warnings 2023-11-24 18:19:03 +01:00
Armin Novak
593e2bf4a9 [api] fix compiler warnings
check #if defined(__GNUC__)
2023-11-24 14:54:56 +01:00
akallabeth
4e438d1c3e [client] make settings opaque 2023-11-24 14:54:56 +01:00
akallabeth
eb445f7c43 [channels] make settings opaque 2023-11-24 14:54:56 +01:00
Armin Novak
68a77b8156 [channels,cups] use PDF printer on mac os sonoma
apple removed postscript support, so switch to PDF printer if running on
mac os sonoma (14) or newer. Requires windows 10 or newer or a custom
PDF printer driver
2023-11-16 15:43:51 +01:00
Armin Novak
57b4f3df20 [channels,cups] add debug logging for failures 2023-11-16 15:43:51 +01:00
Armin Novak
f5d9c5f815 [channels,cups] remove support for CUPS < 2.0 2023-11-16 15:43:51 +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
Raphaël ZHOU
ad7b41c997 (clipboard) Make sure there is always a Client Format List PUD after a Client Clipboard Capabilities PDU. 2023-11-09 11:40:00 +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
akallabeth
f0709d00a9 [channel,rail] move client_rail_server_start_cmd
the function needs access to channel internals, so move to channel
2023-11-07 14:42:56 +01:00
Igor V. Kovalenko
cfcb363c4a rdpsnd_pulse: Use C99 constants 2023-11-03 08:12:12 +01:00
Igor V. Kovalenko
2867c806fc rdpsnd_pulse: Allow reconnecting to pulseaudio server
Detect if pulseaudio context has lost connection to server and initiate
reconnection during play call.
2023-11-03 08:12:12 +01:00
Igor V. Kovalenko
087eb20431 rdpsnd_pulse: Eliminate synchronous write loop
Since complete sound frame is already available, just write it out to
pulseaudio stream using more efficient pa_stream_begin_write API.

This removes a few milliseconds of pure wait time from each play call and
makes audio playback a bit smoother.
2023-11-03 08:12:12 +01:00
Armin Novak
d000d9e957 [channels] add <NAME>_CHANNEL_NAME for each
* made <NAME>_CHANNEL_NAME defines consistent, each channel now has a
  define for the library name.
* use these defines instead of string constants
2023-11-02 12:44:28 +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
David Fort
4a0e0ae88f [egfx] reset total decoded frames when receiving caps
It seems like some windows servers don't like to receive ack frame messages
with a totalDecodedFrame number that is bigger than the frameId.
That can happen if the connection starts, some frames are decoded, we receive a
renegotiate message, then egfx channel is reopened and the frame ids we receive
go back to 1. In the previous situation, we ended up with sending an ack
with frameId=1 and totalDecodedFrames=38, with the patch totalDecodedFrames is
reset when receiving caps, so it's always lower than frameId.
2023-10-27 19:09:41 +02:00
Pascal Nowack
687ed017d3 server: Add channel handling for mouse cursor channel ([MS-RDPEMSC])
The mouse cursor channel enables remoting of the mouse cursor (bitmap)
over a DVC. The main use case is UDP, as only virtual channels can be
transported via UDP in RDP.
2023-10-25 12:57:26 +02:00
Pascal Nowack
aac8945fe9 server: Add channel handling for location channel ([MS-RDPEL])
With the location channel, an RDP server can redirect the location of
the user from the client side to the server side.
The PDUs are almost the same as in the documentation, except for the
encoded types, these ones are here already parsed.
Optional values are accessed via pointers. If the pointer of a value is
NULL, then that value was not supplied by the client side.
2023-10-17 10:18:08 +02:00
Armin Novak
60390ea40c [pragma] unify compiler diagnostics 2023-10-16 15:10:13 +02:00
Armin Novak
c91a250623 [warnings] add WINPR_FORMAT_ARG
with WINPR_FORMAT_ARG format strings are marked for MSVC to avoid
warnings
2023-10-16 15:10:13 +02:00
Armin Novak
07543a6042 [warnings] fix various warnings
* missing const in casts
* missing static for functions
* missing WINPR_ATTR_FORMAT_ARG for printf like functions
2023-10-16 15:10:13 +02:00
akallabeth
822ba31c31 [bsd] clean up bsd related detections 2023-10-10 22:59:53 +02:00
akallabeth
f1eaa01de2 [oss] moved detection to module 2023-10-10 22:59:53 +02:00
akallabeth
f977de89e3 [pulse] move detection to module 2023-10-10 22:59:53 +02:00
akallabeth
f06c027824 [alsa] move detection to module 2023-10-10 22:59:53 +02:00
akallabeth
046767b195 [opensles] moved detection to modules
* Rename variables to match package name
* Move find_package to where it is actually used
2023-10-10 22:59:53 +02:00
ichaoX
a6e9cfa6d9 [channels,rdpei] fix pen contact 2023-09-13 15:57:59 +02:00
akallabeth
4eb3a16120 [channels,audin] fix return value type 2023-09-02 07:56:21 +02: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
ad51c6a0f5 [channels,printer] default CUPS to being enabled
* printer support now enabled by default unless iOS or ANDROID is build.
* Move cups library detection to printer module
2023-08-25 13:54:29 +02:00
akallabeth
4e824b243f [winpr] add WINPR_ATTR_FORMAT_ARG
this macro declares the function argument (pos,arg) to be a printf
style format string and enables compiler checks for that.
2023-08-25 12:56:36 +02:00
akallabeth
9cee9b3c08 [c standard] use WINPR_FALLTHROUGH
use the macro to silence intentional switch fallthrough locations
2023-08-25 12:56:36 +02:00
akallabeth
04f5790fd4 [channel,rdpgfx] fix wrong return type 2023-08-25 08:42:31 +02:00
akallabeth
7a71441476 [warnings] fix integer multiplications
Ensure the integer width for size arguments is 64bit in a
multiplication. Leading 64bit constant 1ull expands width, a trailing
one is ignored.
2023-08-22 11:55:00 +02:00
Marc-André Moreau
c691ef9c8d allow selecting smartcard emulator at runtime rather than link time 2023-08-21 12:00:17 +02:00
akallabeth
41bd8bd3fb [various] fix integer conversions 2023-08-04 15:07:56 +02:00
ehdgks0627
8e3d72e814 Add return statement when not enough data 2023-08-03 10:16:05 +02:00
Martin Fleisz
45ee30da5e rdpdr: Fix potential null pointer access 2023-08-02 19:09:26 +02:00
Kai Pastor
5ecc011c13 Export interface include directories 2023-08-01 11:12:46 +02:00
Armin Novak
ef5c0e78ab [build] use define WINPR_FALLTHROUGH
with c17 compatible compilers annotate with [[fallthrough]]
2023-07-31 23:46:53 +02:00
Armin Novak
62da5c7e8e [channels,rdpgfx] make internal server thread optional 2023-07-31 20:18:48 +02:00
ehdgks0627
d04ba8d6ef Correct typos and formatting errors in format strings
In several files, fixed typos in format strings that were causing unexpected output and formatting issues.
2023-07-28 15:34:46 +02:00
Armin Novak
045fcedd12 [channels,printer] fix backend load function
changed the signature of the backend loader function. the previous
version casted the allocated pointer to UINT which might not be able to
hold a pointer.
2023-07-28 12:24:22 +02:00
Armin Novak
3612948bad [channels,audin] assertions and warning fixes 2023-07-27 20:02:43 +02:00
Armin Novak
70e437dbeb [channels,echo] assertions and warning fixes 2023-07-27 20:02:43 +02:00
Armin Novak
bd0d927b08 [channels,encomsp] assertions and warning fixes 2023-07-27 20:02:43 +02:00