Commit Graph

22139 Commits

Author SHA1 Message Date
akallabeth
acf04f1087 [winpr,platform] add C11 thread_local support 2025-12-10 15:22:54 +01:00
akallabeth
4e212e6f31 [utils,http] log http response
add the full http response to the debug log
2025-12-10 14:27:54 +01:00
akallabeth
81e7c6c233 Merge pull request #12058 from akallabeth/drdynvc-error-handling
[CMake] make Mbed-TLS and LibreSSL experimental
2025-12-09 11:24:59 +01:00
akallabeth
03bef94717 [CMake] make Mbed-TLS and LibreSSL experimental
We do not release test anything except OpenSSL, so mark these
implementations experimental as they might break at any time and are
dependent on external contributions to keep them working.
2025-12-09 10:50:54 +01:00
Martin Fleisz
46680aff2c Merge pull request #12057 from akallabeth/drdynvc-error-handling
[channels,drdynvc] propagate error in dynamic channel
2025-12-09 10:50:19 +01:00
akallabeth
795fe479b8 [channels,drdynvc] propagate error in dynamic channel 2025-12-09 10:36:47 +01:00
akallabeth
44ab77c035 Merge pull request #12055 from akallabeth/sanitize-hostname
[crypto,certificate] sanitize hostnames
2025-12-09 09:01:19 +01:00
akallabeth
e763541d8d [client,common] add vsock:// syntax to help 2025-12-09 08:42:31 +01:00
akallabeth
3666b91981 [crypto,certificate] sanitize hostnames
When creating a local certificate file ensure the hostname does not
contain invalid characters.
2025-12-09 08:32:42 +01:00
akallabeth
bd0544bea7 Merge pull request #12050 from akallabeth/from-stdin
From stdin and sdl-creds improve
2025-12-08 16:50:14 +01:00
akallabeth
a8e47a4afb Merge pull request #12052 from akallabeth/config-path-fix
[utils,helpers] fix freerdp_settings_get_legacy_config_path
2025-12-08 16:44:37 +01:00
akallabeth
67e55811aa [utils,helpers] fix freerdp_settings_get_legacy_config_path
properly append filename to the path as is done in other configuration
tyhpes.
2025-12-08 02:19:35 +01:00
akallabeth
7973abe51c [client,sdl] rename member variables 2025-12-07 10:09:05 +01:00
akallabeth
78c9779eb1 [utils,passphrase] fix dangling pointers 2025-12-07 09:02:57 +01:00
akallabeth
266bf0e153 [client,sdl] position active input
When querying for credentials position the selected input field to the
first element not already containing a value.
2025-12-07 08:51:06 +01:00
akallabeth
0f5c53d3e5 [client,common] handle AUTH_RDSTLS separate
The requirements for that authentication type are different, so handle
it not like the rest.
2025-12-07 08:16:16 +01:00
akallabeth
b244d24246 Merge pull request #12045 from akallabeth/ssl-logging
[core,transport] improve SSL error logging
2025-12-05 14:17:38 +01:00
akallabeth
20fc94edbc [core,listener] handle VMADDR_CID_ANY 2025-12-05 13:36:02 +01:00
akallabeth
2870ab7937 [core,transport] improve SSL error logging 2025-12-05 10:55:39 +01:00
akallabeth
09bbf44779 Merge pull request #12036 from akallabeth/release-3.19.0
Release 3.19.0
2025-12-05 09:46:21 +01:00
Armin Novak
58742e4da7 dev-cycle-3.19.1-dev0 2025-12-05 09:17:58 +01:00
Armin Novak
300a4e6d60 release-3.19.0 2025-12-05 09:17:55 +01:00
Armin Novak
bd49c60a41 changelog 2025-12-05 09:17:52 +01:00
akallabeth
bf63ef0ced Merge pull request #12043 from akallabeth/cleanups-release
Cleanups release
2025-12-05 09:17:17 +01:00
akallabeth
6bac078120 [channels,rdpecam] fix implicit widening of multiplication result 2025-12-05 09:00:58 +01:00
akallabeth
c9b008637b [core,nla] split nla_encode_ts_credentials 2025-12-05 08:20:28 +01:00
akallabeth
c118d3df18 [channels,rpdecam] log dropped samples 2025-12-05 08:20:25 +01:00
akallabeth
90b92ca27f Merge pull request #12041 from hardening/rdpecam_unsolicited_frames
rdpecam: fix camera sample grabbing
2025-12-05 07:55:15 +01:00
David Fort
32e64c1e98 rdpecam: fix camera sample grabbing
Before this patch we had a behavior where there was a credit of 8 samples that
could be sent to the server with no corresponding sample request. So in the right
conditions, we were having situations where the server was receiving samples that
it has not requested, and so it was dropping them. The visible effect was small
artifacts in the camera stream when i-frames where dropped, and more serious ones
when the dropped content was containing key frames.

This issue has also been reported when xfreerdp connects on g-r-d as #11990.

This patch reworks the frame grabbing workflow: when the frame grabbing thread calls
the sample callback we check if a sample is already pending, waiting to be sent to the
server. If that's the case and the camera's input format supports frame dropping we just
refresh the pending frame with the new one. If the input format can't drop frames (like
with h264 and mjpg) we wait until the current pending frame is sent.
So now frames can be sent either when we receive a sample request from the server,
or when the sample callback is invoked.
2025-12-04 23:14:54 +01:00
David Fort
3f3a0426d3 Merge pull request #12042 from Devolutions/bug/smartcard_hw_enumerateCerts_off_by_one
[smartcardlogon] Fix off-by-one error in `smartcard_hw_enumerateCerts`
2025-12-04 17:58:07 +01:00
Richard Markiewicz
a56a50361b [smartcardlogon] Fix off-by-one error in smartcard_hw_enumerateCerts 2025-12-04 11:16:30 -05:00
akallabeth
3b5c13dcbf Merge pull request #12039 from hardening/rcg_serverside_fixes+ntlm
rdpear: handle basic NTLM commands and fix server-side
2025-12-04 14:05:10 +01:00
David Fort
65bb6c59fc rdpear: handle basic NTLM commands and fix server-side
This patch adds the handling of basic NTLM commands. Because there's some mysterious
4 zero bytes after pickle header in Kerberos packets, not present in NTLM commands, the
patch also had to rework a bit the packet parsing / forging.

The patch also addresses a server-side bug when parsing supplemental creds, if the client
was sending an empty list, we were considering this as an error.

And finally we also implement the parsing of MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL.
This breaks the public API, anyway this was basically unused (as not parsed before) and
the previous API was wrong as what we receive is MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL
not MSV1_0_SUPPLEMENTAL_CREDENTIAL, so I guess the API breakage is ok.
2025-12-04 11:31:09 +01:00
akallabeth
c411b13370 Merge pull request #12038 from akallabeth/clang-tidy-release
Clang tidy release cleanups
2025-12-03 15:29:12 +01:00
Armin Novak
c60e9a560c [ci,tidy] disable checks that trigger C code constructs 2025-12-03 15:10:57 +01:00
Armin Novak
7ccb5994c0 [c++] replace std::lock_guard with std::scoped_lock 2025-12-03 15:10:56 +01:00
akallabeth
98b80dcc65 Merge pull request #12037 from akallabeth/release-cleanups
Release cleanups
2025-12-03 14:55:16 +01:00
Armin Novak
81bdebdd09 [client,SDL] use freerdp_GetConfigFilePath 2025-12-03 14:21:46 +01:00
Armin Novak
f533089b98 [client,SDL] use CStringPtr to guard allocated C strings 2025-12-03 14:21:46 +01:00
Armin Novak
29f5901e25 [client,SDL] add CStringPtr type
Allows wrapping allocated C strings to automatically free them when no
longer used.
2025-12-03 14:21:40 +01:00
akallabeth
12353ebb56 Merge pull request #12035 from akallabeth/nego-fast
[core,nego] disable all enabled modes except the one requested
2025-12-03 11:46:26 +01:00
Armin Novak
cd8d2e98b1 [core,nego] disable all enabled modes except the one requested
If a TYPE_RDP_NEG_FAILURE message is received, evaluate the failure code
and disable all modes except the one requested. This eliminates
unnecessary connection attempts with security modes not enabled.
2025-12-03 10:47:48 +01:00
akallabeth
767a020acb Merge pull request #12032 from hardening/rcg_fix2
Fix inverted ifdef
2025-12-02 08:40:38 +01:00
David Fort
0c06dd98e5 Fix inverted ifdef 2025-12-02 07:31:39 +01:00
akallabeth
b639e379ee Merge pull request #12031 from hardening/rcg_fix
Fix remote credential guard channel loading
2025-12-01 21:34:23 +01:00
David Fort
8df50f44b6 Fix remote credential guard channel loading
This patch fixes the loading of the RCG channel. It also adds a guard so the
/remoteGuard cmdline doesn't work if the channel is not built in.
2025-12-01 18:13:05 +01:00
akallabeth
b971720115 Merge pull request #12029 from akallabeth/rdpecam-log
[channels,rdpecam] improve log messages
2025-12-01 09:49:03 +01:00
akallabeth
74a3ddc7df Merge pull request #12028 from hardening/dynvc_compress
drdynvc: implement compressed packet
2025-12-01 09:29:52 +01:00
akallabeth
d80d9bf2ce [channels,rdpecam] improve log messages 2025-12-01 09:15:17 +01:00
David Fort
15659a2590 drdynvc: implement compressed packet
The DRDYNVC compression is the zgfx compression, this patch adds the support for DYNVC_DATA_COMPRESSED
and DYNVC_DATA_FIRST_COMPRESSED packets.
2025-12-01 09:09:03 +01:00