Commit Graph

17970 Commits

Author SHA1 Message Date
akallabeth
859b1b5f0b [codec,nsc] ensure integer width
ensure multiplication result is 64bit
2023-08-22 10:26:56 +02:00
Armin Novak
3cfa4ed6f2 [server,shadow] fix initialization of [MS-RDPEGFX]
the channel was initialized with handling messages in a thread and
handling the channel messages on main thread. fix that.
2023-08-21 16:09:05 +02:00
Rubycat
68b1614b66 Do not fail on certificates without subject
It is possible to implement an rdp client that accepts certificates by
fingerprint by using VerifyCertificateEx. In case the server uses a
certificate without subject (which, apparently, is not mandated by X509)
freerdp_certificate_data_load_cache fails and the certificate is refused
even before calling VerifyCertificateEx. This commit changes
freerdp_certificate_data_load_cache to consider that missing subject is
the same as an empty string.

Also downgrade the log message complaining about missing subject and
issuer to a warning.
2023-08-21 16:03:36 +02:00
Armin Novak
dd9757d686 [server] add exerimental and unmaintained warnings 2023-08-21 15:42:10 +02:00
James Fu
5b012fbc8a rail: fix window freeze when moving window after minimizing and restoring
When restoring from minimized state, sometimes MapNotify is received before PropertyNotify,
and the rail_state is still WINDOW_SHOW_MINIMIZED.
2023-08-21 14:44:58 +02:00
Armin Novak
65a05fc490 [core,server] set freed pointer NULL
Fixes #9271: after freeing the memory reset it to NULL to signal it was
already handled.
2023-08-21 13:35:36 +02:00
2fly2
bce9f1cbe6 [core,settings] default disable ThinClient setting
fixes show black window when connect transparent app in
windows server 2012r2
2023-08-21 13:03:56 +02:00
2fly2
553d964d8c Fix the issue of incorrect macro definition IFCALLRESULT 2023-08-21 13:03:56 +02:00
Kimon Hoffmann
8ec4d20616 [cmake] Locate PkgConfig module with find_package() instead of include(FindPkgConfig)
This is the contemporary way of including find modules and including the
find module this way avoids cmake errors in conjunction with
find_package_handle_standard_args().

Signed-off-by: Kimon Hoffmann <Kimon.Hoffmann@lawo.com>
2023-08-21 12:43:56 +02:00
Armin Novak
988dcd49a3 [nightly,windows] use static zlib dependency 2023-08-21 12:00:17 +02:00
Armin Novak
aa3a9822dd [ci,windows] prefer static zlib 2023-08-21 12:00:17 +02:00
Marc-André Moreau
c691ef9c8d allow selecting smartcard emulator at runtime rather than link time 2023-08-21 12:00:17 +02:00
Armin Novak
9f967b4942 [codec,color] fix freerdp_image_fill
in case width or height == 0 out of bounds write might happen.
reported by @pwn2carr
2023-08-21 11:43:50 +02:00
Armin Novak
e204fc8be5 [coded,rfx] check indices are within range
reported by @pwn2carr
2023-08-21 11:41:06 +02:00
Armin Novak
1ca6362498 [codec,rfx] free content of currentMessage on fail 2023-08-21 11:39:40 +02:00
Armin Novak
10a29dbc99 [codec,nsc] fix missing plane length check
reported by @pwn2carr
2023-08-21 11:38:13 +02:00
Armin Novak
c0df9a50e5 [proxy,drdynvc] fix #9303 broken format string 2023-08-21 10:42:33 +02:00
David Fort
2252d53001 [winpr] cipher enable setting the padding option
It happens that with some ciphers the standard behaviour that disables padding
is not desired. This patch adds a function to enable padding.
2023-08-16 10:19:15 +02:00
Marc-André Moreau
8c670b177b fix freerdp_key_generate for some versions of OpenSSL (null key->evp) 2023-08-15 15:00:49 +02:00
David Fort
56324906a2 TestThreadExitThread: fix messages and wait timeout for the windows CI
Looks like for the windows x86_86 CI host 100ms is too small for a thread to terminate
so let's wait for longer and decrease the number of loops.
2023-08-12 09:24:08 -04:00
Armin Novak
5be5553e0d [nightly,deb] fix libwebkit2gtk-4.0 name 2023-08-05 08:43:00 +02:00
Armin Novak
4d7762b390 [nightly,deb] add missing dependency 2023-08-05 08:14:57 +02:00
akallabeth
63a2f65618 [codec,rfx] fix possible out of bound read
Allows malicious servers to crash FreeRDP based clients
reported by @pwn2carr
2023-08-04 15:09:59 +02:00
akallabeth
41bd8bd3fb [various] fix integer conversions 2023-08-04 15:07:56 +02:00
akallabeth
fee2b10ba1 change version to 3.0.0-dev3 2023-08-04 12:59:11 +02:00
Armin Novak
d3e428c51f change version to 3.0.0-beta2 2023-08-04 12:59:11 +02:00
Armin Novak
316ca3f4e0 changelog for 3.0.0-beta2 2023-08-04 12:59:11 +02:00
akallabeth
a17b1ecec0 [client,android] use 'text/plain' to access clipboard 2023-08-04 12:59:11 +02:00
akallabeth
22fffdd5ea [freerdp,api] log NULL IFCALL/IFCALLRET calls 2023-08-04 12:59:11 +02:00
akallabeth
8877614d50 [android] updated openssl, cjson and ffmpeg 2023-08-04 12:59:11 +02:00
akallabeth
b12e2ee469 [cmake] do not require NTDLL 2023-08-04 12:59:11 +02:00
akallabeth
c8ce3eba06 [codeql] add libwebkit2gtk-4.0-dev 2023-08-04 12:59:11 +02:00
akallabeth
793d80f2c4 [cmake] update ci defaults 2023-08-04 12:59:11 +02:00
Armin Novak
fafc2e61f9 [client,sdl] redirect sdl log to wlog 2023-08-04 12:59:11 +02:00
akallabeth
67bc4565e2 [cmake] default to require FFMPEG and SWCALE
As for modern RDP some kind of H264 and image scaling is required,
default to enable FFMPEG support.
2023-08-04 12:59:11 +02:00
akallabeth
8470b6ea26 [cmake] set default build type
set with CACHE STRING FORCE to properly be picked up by configuration
tools
2023-08-04 12:59:11 +02:00
akallabeth
0e458c8c2c [cmake] WITH_WEBVIEW new defaults
* Enable by default now
* Use a config file to detect if it is enabled
2023-08-04 12:59:11 +02:00
akallabeth
10ea529f70 [cmake] build samples by default 2023-08-04 12:59:11 +02:00
akallabeth
21ac28bb54 [cmake] build server components by default 2023-08-04 12:59:11 +02:00
akallabeth
76d23885d4 [cmake] add common options to subprojects 2023-08-04 12:59:11 +02:00
Pascal Nowack
8fc7062605 client/cliprdr_file: Do not deadlock with FUSE2 when stopping fuse loop
FUSE2 has compared to FUSE3 a rather complicated structure with respect
to the FUSE loop, as it uses two handles for the loop and the mount.
Due to needing the possibility to invalidate inodes during the session
and to exit the FUSE session, the session and channel handles need to be
kept alive.
When the session stops, and with that the FUSE session too, the FUSE
thread must still be able to unmount the FUSE mount.
But due to FUSE2's annoying structure, the FUSE session must be
destroyed before doing this.
In this time period, where the FUSE2 loop stops running and between
stopping the FUSE2 session, it cannot answer any requests.
As a result, the "path test", where the mount path is poked cannot be
performed.
This "path test" is however necessary to ensure, that the FUSE loop
exits.
So, the main thread pokes at the FUSE mount to ensure the loop
definitely exits to then signal the FUSE thread, that it can destroy the
session and channel object.
But at the same time, the FUSE loop may already exited and wait for the
main thread to be signalled, that it can destroy the session and channel
object.
The waiting conditions here cannot be satisfied, leading to a deadlock.

Fix this situation, by already signalling the FUSE thread, that it can
destroy the FUSE objects, after calling fuse_session_exit.
2023-08-04 11:08:01 +02:00
Hodol Han
d962f1e4d0 [client,common] Fix minor code errors
`cctx->contacts` -> `cctx->pens`
2023-08-03 17:55:49 +02:00
Hodol Han
5d61ab1eac [client,common] Fix freerdp_client_register_pen
Pass null device id rather than `deviceid` to find an empty pen device
slot.
2023-08-03 17:55:49 +02:00
David VERON
fb406feb33 libwinpr/crt/unicode: unicode conversion functions with allocation
Unicode conversion functions with allocation returned NULL when the input was
a string of len = 0. Now those functions allocate buffers with the
corresponding empty string that the caller has to free.
2023-08-03 17:23:52 +02:00
akallabeth
e51a5b33fb [core,orders] fix undefined variable, unify log strings 2023-08-03 13:54:03 +02:00
ehdgks0627
2496037f03 Standardize failure messages for order functions 2023-08-03 13:54:03 +02:00
ehdgks0627
105ce6c56b Update error message when update_read* function failed 2023-08-03 13:54:03 +02:00
ehdgks0627
8e3d72e814 Add return statement when not enough data 2023-08-03 10:16:05 +02:00
Pascal Nowack
33c2c5eb96 client/cliprdr_file: Fix build when using FUSE2 instead of FUSE3
To invalidate inodes, FUSE2 uses a FUSE channel handle, while FUSE3 uses
the FUSE session.
So, ensure the correct handle is passed to the respective API calls.
2023-08-03 08:57:26 +02:00
Pascal Nowack
c031e7eba6 client/cliprdr_file: Do not destroy FUSE session while using it
When invalidating inodes, it is obligatory, that the session was not
destroyed yet.
So, in case of the FUSE loop stops before the session stops wait with
the destroyal of the session, until it is clear, that it is not used
anymore.
2023-08-03 08:57:26 +02:00