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
1ef7b9e3e0
[codec,dsp] fix ffmpeg deprecation warning
2023-11-24 21:23:38 +01:00
Armin Novak
492cbc8e6f
[opaque_settings] reorder internal includes
...
order is important for internals, as the deprecation warnings are
deactivated for this use case
2023-11-24 21:23:38 +01:00
akallabeth
737cd9b8f6
[warnings] Wshadow, uninitialized variables
2023-11-24 18:19:03 +01:00
akallabeth
c78e466be1
[warnings] fixes Wunused-variable
2023-11-24 18:19:03 +01:00
akallabeth
6b9245849c
[warnings] type casts
2023-11-24 18:19:03 +01:00
akallabeth
5dd12c5b1b
[codec,dsp] mark fallthrough
2023-11-24 18:19:03 +01:00
akallabeth
dd2d110870
[warnings] fix -Wcast-qual
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
8e7561534e
update settings
2023-11-24 14:54:56 +01:00
Armin Novak
4d50d59e7e
[settings] renamed VirtualChannelCompressionFlags
2023-11-24 14:54:56 +01:00
Armin Novak
37bd7e0959
[settings] renamed VirtualChannelChunkSize
...
in [MS-RDPBCGR] it is named VCChunkSize
2023-11-24 14:54:56 +01:00
Armin Novak
3e9aad58f9
[common,settings] add documentation and missing API
...
* added freerdp_settings_are_valid for batch checks
* added missing settings function documentation
2023-11-24 14:54:56 +01:00
akallabeth
093d722447
[settings] assert invalid keys in getter
2023-11-24 14:54:56 +01:00
Armin Novak
704ee8bc4b
[settings] add unused values and sign correct keys
...
* add -1 as unused enum entry
* change key parameter type from size_t to SSIZE_T
2023-11-24 14:54:56 +01:00
Armin Novak
6e6559c41a
[settings] fix type mismatch warnings
2023-11-24 14:54:56 +01:00
Armin Novak
cda6239119
[settings] update generated settings helper
2023-11-24 14:54:56 +01:00
Armin Novak
593e2bf4a9
[api] fix compiler warnings
...
check #if defined(__GNUC__)
2023-11-24 14:54:56 +01:00
akallabeth
cd4d77af86
[settings] add deprecation warnings
...
direct struct access to rdpSettings now produces warnings if not
explicitly deactiaved by defining FREERDP_SETTINGS_INTERNAL_USE
2023-11-24 14:54:56 +01:00
akallabeth
130501fcd5
[core,bitmap] make settings opaque
2023-11-24 14:54:56 +01:00
akallabeth
f068b6fc99
[utils,smartcard] make settings opaque
2023-11-24 14:54:56 +01:00
akallabeth
1163cc4d5c
[core] add internal settings.h include
2023-11-24 14:54:56 +01:00
akallabeth
82eefe0bd1
[settings] auto generate key types from struct
...
* use enum types for settings getter/setter to have compiler check if
keys are valid
* generate enum types from struct at compile time
* CMake option WITH_OPAQUE_SETTINGS to hide rdpStruct implementation
from external projects
2023-11-24 14:54:56 +01:00
akallabeth
fc79519741
[settings] clean up string helper
2023-11-24 14:54:56 +01:00
akallabeth
71a7ffa8d8
[settings] add freerdp_settings_append_string
...
this function appends a string to an existing values, takes care of
memory allocations.
2023-11-24 14:54:56 +01:00
akallabeth
a9a879c59f
[settings] remove freerdp_settings_take_string
...
this function is problematic as it allows mixing allocators.
2023-11-24 14:54:56 +01:00
akallabeth
ecc21a2cfc
[settings] add freerdp_settings_copy_item
...
convenience function to copy a value of opaque type from one settings
struct to another, cleaning up possible existing data first
2023-11-24 14:54:56 +01:00
Armin Novak
1048ad4003
[scard] allow INFINITE timeout
2023-11-21 15:54:01 +01:00
akallabeth
84c3e5b027
[cmake] fix pkg-config check
2023-11-21 14:29:47 +01:00
Pascal Nowack
9c3dfefb7f
codec/dsp: Also set bitrate for Opus encoder
2023-11-21 14:29:47 +01:00
akallabeth
26e003ce05
[codec,dsp] experimental opus encoder
2023-11-21 14:29:47 +01:00
akallabeth
c2c40ae2ff
[codec,dsp] initial support for ffmpeg/opus
2023-11-21 14:29:47 +01:00
akallabeth
7a05d85a7f
[codec,dsp] unify opus sample rate check
2023-11-21 14:29:47 +01:00
akallabeth
a232cec690
[codec,dsp] fix opus related code
...
* proper library detection
* default to NOT WITH_DSP_FFMPEG
* disable if WITH_DSP_FFMPEG
2023-11-21 14:29:47 +01:00
Pascal Nowack
330f7ae0a2
codec/dsp: Add support for decoding Opus encoded streams
...
The Opus codec is a modern free audio codec, that is also royalty-free.
Adding support for it will allow clients and servers supporting it to
transfer audio in similar efficient way like with AAC.
So, add support it.
2023-11-21 14:29:47 +01:00
akallabeth
3ca26384ee
[core] only move state on demand active
...
rdp_client_connect_demand_active returns STATE_RUN_ACTIVE if we received
it, some other return otherwise
2023-11-21 13:54:29 +01:00
akallabeth
0ee61dcb62
[core,connection] improve parsing of demand active
...
Split up parsing, so we don´t have to reread the data.
2023-11-21 13:54:29 +01:00
akallabeth
e3a84921de
[core,gateway] fix TSG_PACKET_TYPE_QUARENC_RESPONSE
...
parsing of TSG_PACKET_TYPE_QUARENC_RESPONSE was incomplete, fix that
2023-11-20 18:00:42 +01:00
Armin Novak
e451b4cad1
[core,gateway] rpc use generated session id
2023-11-20 18:00:42 +01:00
Armin Novak
7d02a97a88
[core,gateway] change type of GUID arguments
...
use const GUID* for GUID strings and format the string internally
2023-11-20 18:00:42 +01:00
Armin Novak
e62e1dbbaf
[core,gateway] add RDG-Correlation-Id
...
implement [MS-TSGU] 2.2.3.2.2 RDG-Correlation-Id
2023-11-20 18:00:42 +01:00
Armin Novak
148e61606a
[core,gateway] silence reading of rts signature
...
sometimes we just try to read the signature and do not want errors
logged.
2023-11-20 18:00:42 +01:00
Armin Novak
99f3a9c0e6
[core,gateway] add rts_recv_ping_pdu
2023-11-20 18:00:42 +01:00
Armin Novak
f367465485
[core,gateway] improve rpc logging
2023-11-20 18:00:42 +01:00
Armin Novak
9fcde2db74
[core,gateway] removed duplicate vc_state_str
2023-11-20 18:00:42 +01:00
Armin Novak
8990ffefca
[core,gateway] rpc dynamic logger
2023-11-20 18:00:42 +01:00
Armin Novak
36647567ac
[core,gateway] fix parsing of RTS PDU
...
* [MS-RPCH] 2.2.4.51 FlowControlAckWithDestination RTS PDU
2023-11-20 18:00:42 +01:00
Armin Novak
814ab2a212
[core,gateway] use dynamic logger in tsg
2023-11-20 18:00:42 +01:00
Armin Novak
6e7a35f8bc
[core,gateway] log rts_recv_out_of_sequence_pdu
2023-11-20 18:00:42 +01:00
Armin Novak
a0db106306
[core,gateway] add vc state logging
2023-11-20 18:00:42 +01:00
Armin Novak
fac9fa5f90
[core,gateway] add rpc stringify functions
2023-11-20 18:00:42 +01:00
Armin Novak
60ceff95c5
[fflush] remove of unnecessary fflush
2023-11-20 18:00:42 +01:00
Armin Novak
cf76e70e85
[core,gateway] fix rts_read_auth_verifier_with_stub
...
check offset against fragment size, not remaining size
2023-11-20 18:00:42 +01:00
Armin Novak
65d3c6fe9b
[core,gateway] update tsg parsing
2023-11-20 18:00:42 +01:00
Armin Novak
135c4cc78c
[core,gateway] try to parse remaining RPC PDU
...
if not all bytes have been parsed, try parsing again
2023-11-20 18:00:42 +01:00
Armin Novak
230563b337
[core,gateway] log incomplete parsed RPC PDU
2023-11-20 18:00:42 +01:00
Armin Novak
d36adb2654
[core,gateway] fix RTS_PDU_PING handling
...
ping messages might occur before connection is fully established, so
reply to incoming ping. Fixes #9505
2023-11-20 18:00:42 +01:00
Armin Novak
1807652975
[core,helpers] add new stringify functions
...
* freerdp_get_logon_error_info_type_ex
* freerdp_get_logon_error_info_data_ex
2023-11-20 18:00:42 +01:00
Armin Novak
957ec80443
[core,gatewayay] improve rpc error logging
2023-11-20 18:00:42 +01:00
David Fort
061148f856
[nla] initial server-side remote credential guard support
...
Adds support for server-side remote credential guard in NLA. When enabled that allows
the remote user to connect without shipping credentials in TSCred packets. Instead
it will send his TGT encoded with a TGS from the remote server. This way the server
is able to populate that TGT in a local credential cache without knowing the user's
password.
The patch only treats the NLA part and does not contain the associated RDPEAR channel
that allows to have the complete interaction to retrieve new access tokens.
2023-11-20 16:17:00 +01:00
akallabeth
20f09b2d34
[codec,aac] add NaN filter
...
ffmpeg format conversion from int16 to float sometimes produces values
that are NaN or Infinity.
Replace these values as these input values break the AAC encoder
2023-11-20 14:22:26 +01:00
akallabeth
694d95a58b
[utils,smartcard] fix reading of context ref
...
unify read of context and context pointer data for all calls.
fixes #9480
2023-11-07 16:07:17 +01:00
Armin Novak
98a4eb77ef
[core] VirtualChannelChunkSize adjustments
...
* add CHANNEL_CHUNK_MAX_LENGTH
* remove duplicate definitions
* default to CHANNEL_CHUNK_MAX_LENGTH
2023-11-03 12:43:25 +01:00
Armin Novak
e56fcb45cb
[core,aad] move cJSON related parsing to core
...
hide cJSON parser from freerdp-client library, link privately
2023-11-02 11:30:55 +01:00
Armin Novak
32c65dbdfc
[crypto,tls] only print fingerprint in log
...
printing the whole PEM to log is too verbose, just use the fingerprint
instead.
2023-10-25 13:15:35 +02:00
David Fort
60ea534ccd
[core] fix marshalling of DynamicTimeZone
...
The field is an UTF16 field, the length was announced as the length of the
UTF8 string.
2023-10-24 12:42:10 +02:00
akallabeth
0b018057b5
[core,input] use time() instead of timespec_get
...
android only supports the latter with API >= 29
2023-10-19 16:37:28 +02:00
Mariusz Bialonczyk
1d1171489f
[tools] update-settings-tests, update-rdpSettings, clang-format
2023-10-19 16:37:28 +02:00
Mariusz Bialonczyk
550ba7fe34
[libfreerdp] final freerdp_prevent_session_lock() implementation
...
Injects fake mouse movement when idle
2023-10-19 16:37:28 +02:00
Mariusz Bialonczyk
90f82bf418
[input] call input_update_last_event() when desired
2023-10-19 16:37:28 +02:00
Mariusz Bialonczyk
21f7bd37cf
[input] input_update_last_event() and variables
2023-10-19 16:37:28 +02:00
akallabeth
9ebbefa5fe
[settings] remove unused extensions
...
The extensions from the unstable API zone were unused, so remove them
2023-10-19 14:22:19 +02:00
akallabeth
4d99b4ff9b
[settings] add ClipboardUseSelection
2023-10-19 14:22:19 +02:00
Pascal Nowack
9835a916ae
settings: Add missing to_string() case for RDP_VERSION_10_12
2023-10-19 04:47:53 +02:00
Pascal Nowack
038660949c
settings: Fix wrong version string
2023-10-19 04:47:53 +02:00
akallabeth
1d21c0c609
[warnings] properly cast constants to char
2023-10-17 11:07:11 +02:00
Pascal Nowack
5ec5be7ac4
utils: Add helper functions to parse encoded types into regular ones
...
Some virtual channels, like the location channel use encoded types to
lower the bandwidth usage.
Add common helper functions, so that each virtual channel doesn't have
to reimplement the parser functions again and again.
2023-10-17 10:18:08 +02:00
David VERON
63e1863c9a
fixes rdp_read_info_null_string api
...
Removed buggy "isNullTerminated" parameter, as RDP specs tells
that cbLen includes the nullTerminator if there is one.
2023-10-16 15:18:52 +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
53b65ff7bd
[documentation] fix Wdocumentation 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
Armin Novak
4778203340
[restrict] remove from in/out buffers
2023-10-16 15:10:13 +02:00
Armin Novak
fe28f9ed9c
[keyword,restrict] do not use for shift operations
...
shifting operations are done on a in/out buffer, so the restrict keyword
is not appropriate for that.
2023-10-16 15:10:13 +02:00
Armin Novak
138d3df028
[core,gcc] parse CS_UNUSED1 message
...
parse message to avoid log entries server side for this kind of PDU
2023-10-13 16:05:27 +02:00
akallabeth
4df4404faa
[core,input] add qoe event handling
2023-10-13 16:05:27 +02:00
akallabeth
20e15ac326
[core] added relative mouse event support
2023-10-13 16:05:27 +02:00
akallabeth
1f7bc15bb1
[settings] add HasQoeEvent
2023-10-13 16:05:27 +02:00
akallabeth
910e3b9fb4
[settings] added new setting for HasRelativeMouseEvent
2023-10-13 16:05:27 +02:00
akallabeth
002b27f2e5
[core] add RDP_VERSION_10_12
2023-10-13 16:05:27 +02:00
akallabeth
80122c1784
[core,aad] cast constants to DWORD
2023-10-10 22:59:53 +02:00
akallabeth
8be124b4a2
[codec,rfx] revert removal of rfx_message_get_frame_idx
2023-10-10 19:35:27 +02:00
akallabeth
d44f9528a1
[ssl] use proper names for TLS_*_method
...
only use deprecated SSLv23_*method on old versions of SSL
2023-10-10 19:35:27 +02:00
akallabeth
89429885a0
[cmake] make generated pkg-config files relocatable
...
* new CMake option PKG_CONFIG_RELOCATABLE (default ON) allows generating
traditional or relocatable pc files
2023-10-10 19:35:27 +02:00
David Fort
a8c5926154
[server,drdynvc] use a hashtable for dynamic channels instead of an arrayList
...
This speeds up all operations around dynamic channels.
2023-10-09 10:47:34 +02:00
akallabeth
a41360e3b0
[codec,rfx] added missing RFX encoder API calls
2023-10-07 21:26:27 +02:00
David Fort
ff303a9bda
[core,nla] Inject received TSCredentials in the peer's settings
...
The RDP client sends TSCredentials so that the server can reuse these credentials. This
patch stores these values in the peer's rdpSettings in the corresponding fields.
It handles TSPasswordCreds for user/domain/password connection but also TSSmartCardCreds
when the users has connected with a smartcard.
2023-10-04 09:22:49 +02:00
Martin Fleisz
9cff6e9366
locale: Fix X11 keyboard layout detection
...
This fixes an issue with keyboard layout detection reintroduced in #8960
The problem has already been fixed in #6688 but got lost after
refactoring.
The issue is that the layout specifier might be a comma separated list
with country specifiers i.e. `"at,us"` which was not correctly handled.
2023-09-28 21:16:17 +02:00
David Fort
3c18a9980f
[client,win32] implement connection to child session
...
Under windows you can connect to a child session by requesting a named pipe to
the local server, and then do some RDP on this named pipe.
The protocol is like for /vmconnect with CredSSP, then Nego and then the "normal"
workflow for a connection. For CredSSP we force the usage of NTLM for the Negociate
SSPI, and the credentials are empty.
2023-09-27 11:57:49 +02:00
David Fort
0638c382f9
[core,nla] correctly print the value of earlyUserAuth
...
The log was printing the previous value instead of the value that is set.
2023-09-27 11:57:49 +02:00
akallabeth
86acc8d31a
[warnings] fixed reserved-identifer warnings
2023-09-25 08:39:01 +02:00
akallabeth
0595f2f7fe
[core,gateway] fix tautological check in arm
2023-09-21 10:57:43 +02:00
akallabeth
0b7b8445bc
[codec,ncrush] fix const correctness of pointer
2023-09-21 10:57:43 +02:00
akallabeth
635626be12
[client,common] avd related keys to rdp file parser
2023-09-21 10:30:09 +02:00
akallabeth
7746c8f4ae
[core,orders] fix #9402 polyline order processing
2023-09-21 10:00:19 +02:00
akallabeth
1d25242eac
[core,transport] fix evaluation of nla errors
...
if there is no rdpNla fall back to default error password expired.
2023-09-21 10:00:19 +02:00
akallabeth
b9fdd88bd7
[crypto,tls] reset tls context before setting
...
clean up old tls context before setting a new one
2023-09-21 10:00:19 +02:00
akallabeth
9a460d38fc
[crypto,tls] free tls bindings before set
...
Free possibly allocated bindings before setting new ones
2023-09-21 10:00:19 +02:00
akallabeth
d275e083ec
[crypto,tls] free existing public key
...
before updating the public key free possible existing data.
2023-09-21 10:00:19 +02:00
akallabeth
5a7a1c159d
[casts] remove fnObject* function pointer casts
...
use proper types that match the function pointer definition to avoid
surprises if the code should be refactored
2023-09-20 21:11:30 +02:00
akallabeth
a546388063
[gdi,line] clean up line functions
...
* Simplify CMake source detection
* Clean up code in line.c, add assertions
2023-09-20 09:53:49 +02:00
akallabeth
e5ad90627b
[gateway,arm] fix abort condition for retries
2023-09-20 09:29:45 +02:00
akallabeth
c1db0029d9
[core,update] fix possible leak on gdi reset
2023-09-20 09:29:45 +02:00
Armin Novak
6399635abf
[core] fix leaks reported in #9400
2023-09-19 09:35:52 +02:00
David Fort
190ecf640f
[drdynvc] improvements of server-side DRDYNVC
...
This patch prepares the reading of the dynamic channel version so that next we
can take in account this to take advantage of advanced features in last versions
(compressions or priorities).
The patch also implement notifying the VCM event when the dynamic channel becomes ready
so that users of FreeRDP can just do calls to WTSVirtualChannelManagerGetDrdynvcState
when the channel event is set (no blind calls).
2023-09-18 13:05:44 +02:00
Armin Novak
79da16244e
[codec,progressive] fix overlapping buffers
2023-09-15 11:24:21 +02:00
Armin Novak
4152ce5dee
[gateway,arm] fix input string length check
2023-09-15 11:24:21 +02:00
akallabeth
be7f2979ee
[gateway,http] const correct HttpResponse
2023-09-14 17:38:08 +02:00
akallabeth
bd595d363d
[arm] add retry callback for transport
...
If the connection is blocked due to some VM requiring spinup time before
being ready to use call the newly created callback RetryDialog.
2023-09-14 12:02:26 +02:00
akallabeth
ab111b07bc
[gateway,http] add a '\0' terminator to body read
...
ensure that every string read by the http functions is '\0' terminated.
2023-09-14 12:02:26 +02:00
akallabeth
13648c84af
[gateway,arm] restructure AVD handling
...
* Split handling into smaller functions
* Move bad request retry out of request function to avoid memory growth
2023-09-14 12:02:26 +02:00
Eduard Mielieshkin
87529fe5ac
changed the log messages
2023-09-14 12:02:26 +02:00
Eduard Mielieshkin
a785fd9c4a
formatted using clang-format
2023-09-14 12:02:26 +02:00
Eduard Mielieshkin
4dcf35c0cb
PoC: waiting until an AVD instance is up
2023-09-14 12:02:26 +02:00
David Fort
1afaaa82d3
[core,arm] Various fixes and adjustements for #9363
...
Treat the case where the publicIpAddress is there but empty.
Don't try RDSTLS if the password has not been been provided.
When RDSTLS is what we will do, disengage all the other security kinds.
2023-09-14 09:00:46 +02:00
akallabeth
7a17671cc9
[codec,h264] first update sizes before checking
2023-09-11 12:53:35 +02:00
akallabeth
d93c4fea2c
[codec,interleaved] fix compiler warning
2023-09-11 12:53:35 +02:00
Armin Novak
517ca5c714
[primitives] fix neon use of WINPR_RESTRICT
2023-09-11 10:04:56 +02:00
Armin Novak
730c621699
[codec,interleaved] fix type definition
2023-09-08 14:44:22 +02:00
akallabeth
9a9db5b7f3
[codec,progressive] expose progressive simple
...
server implementations might require serializing messages to a simple
tile, so expose this function.
2023-09-05 11:40:09 +02:00
Armin Novak
5f8f69512b
[core,orders] fix reading order number field
...
the field for delta rectangles/points/... are only transmitted if they
changed from the previous order of the same type. So keep the original
value and update only if a new one is read.
2023-09-04 12:24:57 +02:00
Armin Novak
12e6bbe13b
[core,orders] log order fields not in packet
2023-09-04 11:32:35 +02:00
Armin Novak
1a1f422d79
[core,orders] unify delta point buffer allocation
2023-09-04 11:32:35 +02:00
Armin Novak
36b58c0688
[core,orders] abort if required filed is not found
2023-09-04 11:32:35 +02:00
Armin Novak
618102b28f
[core,orders] update log message
2023-09-04 11:32:35 +02:00
David Fort
8a39859612
[arm] various improvements
...
This patch moves the ARM configuration before starting the connection process, so
that we can do some provisioning of the FreeRDP settings with the items retrieved
from Azure.
Most notably that allows us to connect directly using RDSTLS security.
2023-09-04 10:24:56 +02:00
David Fort
361da15eed
[crypto] extend base64 to output crLf when encoding
...
Some windows APIs do put \r\n every 64 characters of the output of a
base64 encoded blob. The extended version of crypto_base64_encode allows
to do the same.
2023-09-04 10:24:56 +02:00
akallabeth
ce41d514ab
[core,info] fix rdp_read_info_string
...
* Use proper freerdp_set_string* functions to set string
* In case of failure clean up existing string values
2023-09-02 07:56:21 +02:00
akallabeth
b4ce44c290
[settings] add freerdp_settings_take_string
...
this function can take an allocated value, set the settings string to it
and free it up once replaced by something else.
2023-09-02 07:56:21 +02:00
akallabeth
2102fa907a
[core,connection] use dynamic logger rdp->log
...
for state transition logging use dynamic logger instead.
2023-09-02 07:56:21 +02:00
akallabeth
54021b50b0
[core,peer] fix initial state transitions
...
update initial state transitions according to [MS-RDPBCGR]
the diagram is misleading, some of the text below ambigious, but
1.3.1.1 Connection Sequence phase 10 description lists the dependencies
of server initiated messages.
2023-09-02 07:56:21 +02:00
akallabeth
4461219497
[core,rdp] make monitor layout PDU optional
...
the PDU might arrive or not, do not get stuck if not.
2023-09-02 07:56:21 +02:00
akallabeth
539546a6be
[cmake] correctly link WinPR to FreeRDP
2023-08-31 11:39:22 +02:00
Armin Novak
3ea38175b4
[locale,keyboard] fix keyboard mapping on apple
2023-08-31 11:39:22 +02:00
Armin Novak
d6f9d33a7d
[codec,planar] fix reset
2023-08-30 11:12:09 +02:00
akallabeth
ab31e8ba6a
[codec,h264] ensure context buffer update
...
if realloc is called with 0 size update the pointers and do not fail
2023-08-30 11:11:58 +02:00
akallabeth
17d64237ef
[codec,yuv] check rectangles for validity
...
the decoder needs to check bounds for supplied rectangles for both,
input and output buffers.
2023-08-28 14:26:10 +02:00
akallabeth
e04e28def9
[primitives,yuv] clean up code, assert arguments
2023-08-28 14:26:10 +02:00
Armin Novak
16141a30f9
[codec,ncrush] fix index checks
...
properly verify all offsets while decoding data.
2023-08-28 13:35:45 +02:00
Armin Novak
1bbed81041
[core,orders] fix checks for multi opaque rect
2023-08-28 13:07:28 +02:00
Armin Novak
031c8bacfa
[codec,zgfx] fix cBitsRemaining calculation
...
fixed out of bound read reported by @pwn2carr
2023-08-28 12:50:55 +02:00
akallabeth
cd1da25a87
[codec,nsc] fix input length validation
2023-08-28 09:13:59 +02:00
akallabeth
60dd48e698
[api] fix integer overflow warnings
2023-08-25 14:36:05 +02:00
akallabeth
d350b89fe3
[emu,scard] fix return type
2023-08-25 14:36:05 +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
b608be19e4
[codec,color] WINPR_RESTRICT for copy operations
2023-08-25 14:13:30 +02:00
akallabeth
63cb0b5f19
[codec,rfx] use WINPR_RESTRICT keyword
2023-08-25 14:13:30 +02:00
akallabeth
3dcd702676
[primitives,yuv] use WINPR_RESTRICT
2023-08-25 14:13:30 +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
0a90e9214e
[core,aad] fix type mismatch warning
2023-08-25 12:56:36 +02:00
akallabeth
e975daec20
[codec,clear] fix missing bounds checks
2023-08-25 12:30:15 +02:00
akallabeth
576f836348
[codec,progressive] fix missing destination checks
2023-08-25 12:16:22 +02:00
akallabeth
11461a1b6d
[codec,interleaved] fix bounds checks
2023-08-25 12:01:05 +02:00
akallabeth
feb5ab52cb
[core,rdp] add log messages for unexpected data
2023-08-25 08:42:31 +02:00
akallabeth
8995241ff5
[utils,passphrase] fix type mismatch
2023-08-24 13:17:57 +02:00
akallabeth
d3ba8ebf00
[core,update] log BeginPaint/EndPaint failure
2023-08-23 14:27:51 +02:00
akallabeth
023c2dba6e
[core,autodetect] log unknown message types
2023-08-23 14:27:51 +02:00
akallabeth
769ffbd8a0
[core,fastpat] add logging for failures
2023-08-23 14:27:51 +02:00
akallabeth
74b1d5da89
[core,redirection] add logging
...
add log messages for all possible failure causes
2023-08-23 14:27:51 +02:00
akallabeth
3e744e13c3
[smartcard] clean up function table wrapper
2023-08-23 12:26:27 +02:00
Marc-André Moreau
30c31d64e8
WinSCard dynamic API loading with /winscard-module cli argument
2023-08-23 12:26:27 +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
liuxiaojun
6e5f74e462
optimize idwt extrapolate decoder with neon
2023-08-22 10:54:48 +02:00
akallabeth
859b1b5f0b
[codec,nsc] ensure integer width
...
ensure multiplication result is 64bit
2023-08-22 10:26:56 +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
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
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
Marc-André Moreau
8c670b177b
fix freerdp_key_generate for some versions of OpenSSL (null key->evp)
2023-08-15 15:00:49 +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
22fffdd5ea
[freerdp,api] log NULL IFCALL/IFCALLRET calls
2023-08-04 12:59:11 +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
Kai Pastor
5ecc011c13
Export interface include directories
2023-08-01 11:12:46 +02:00
Armin Novak
0cd36c1526
[build] fix Wmissing-prototypes
2023-08-01 08:37:58 +02:00
Kai Pastor
21cfc456f5
find_dependency for exported cmake config
2023-08-01 08:13:30 +02:00
Joan Torres
c843e35b75
[codec] encode messages considering endianness
...
The byte order of the pixels is affected by endianness, use bitwise
operations to access those bytes so the endiannes won't affect the final
result.
2023-08-01 07:56:16 +02:00
Joan Torres
a332db7cf5
[libfreerdp] fix endianness issues
...
There were some fields sent without considering endianness, making the
clients fail when parsing those fields.
Use Data_Write_XXX functions so the endiannes won't affect the byte order
and the clients will read properly the fields.
2023-08-01 07:56:16 +02:00
Richard Markiewicz
f59c98eebe
[core,info] Fix rdp_info_read_string conversion check
2023-08-01 07:15:59 +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
e7c2a75e1e
[gateway,rpc] return FREERDP_ERROR_CONNECT_ACCESS_DENIED
...
unify http and rpc gateway return codes
2023-07-31 16:51:14 +02:00
Armin Novak
c656bb9d1d
[core,gateway] ensure '\0' termination of http response
2023-07-31 16:51:14 +02:00
Armin Novak
de6aaded94
[core,gateway] improve http_response_print
...
print out all response data.
2023-07-31 08:46:57 +02:00
Armin Novak
4e1781740c
[codec,test] fix wrong format string
2023-07-31 08:32:43 +02:00
Armin Novak
0afa2e88b5
[crypto,cert] imrove logged warnings for certificates
2023-07-31 08:32:43 +02:00
Armin Novak
1618677e13
[codec,progressive] fix warnings
2023-07-31 08:32:43 +02:00
Armin Novak
8be9a3a5dd
[core,gateway] unify http response logging
2023-07-31 08:32:43 +02:00
Armin Novak
03b78dd57b
[aad] print http status response message
2023-07-28 16:42:23 +02:00
Armin Novak
cd7cb514a8
[core,gateway] unify http response logging
2023-07-28 16:42:23 +02:00
Armin Novak
0bdb62e9b5
[libfreerdp] fix integere narrow warnings
2023-07-28 15:48:32 +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
c4528d58bc
[codec,rfx] fix shift bitwidth warnings
2023-07-28 13:42:12 +02:00
Armin Novak
4fef924531
[codec,interleaved] fix type width warnings
2023-07-28 13:42:12 +02:00
Armin Novak
c728bb9647
[codec,ncrush] fix type cast warnings
2023-07-28 13:42:12 +02:00
Armin Novak
077aff0217
[core] fix cast warnings
2023-07-28 13:42:12 +02:00
Armin Novak
9d5e95c60b
[core] fix unary minus warnings
2023-07-28 13:42:12 +02:00
Armin Novak
60dc504494
[codec,rfx] fix sign warnings
2023-07-28 13:42:12 +02:00
Armin Novak
0aab55d492
[codec,progressive] fixed sign warnings
2023-07-28 13:42:12 +02:00
Armin Novak
7dc8a4a51d
[codec,planar] fixed sign warnings
2023-07-28 13:42:12 +02:00
Armin Novak
32b9eeb3c0
[winpr,sysinfo] deprecage GetVersionInfoEx
...
the function is deprecated under windows, so deprecate it in WinPR too
and remove/replace usage
2023-07-28 13:42:12 +02:00
Armin Novak
1e0ca536c7
[ci,nightly] use internal MD4, MD5 and RC4 on windows
2023-07-28 13:42:12 +02:00
Armin Novak
6c6eaf5144
[primitives,yuv] fix pointer cast warnings
2023-07-28 13:42:12 +02:00
Armin Novak
b1dee0f56c
[codec,rfx] fix sign warnings
2023-07-27 21:05:43 +02:00
Armin Novak
64f4fe397c
[crypto,tls] fixed sign warnings
2023-07-27 21:05:43 +02:00
Armin Novak
76169c26cd
[core,caps] fix warnings
2023-07-27 20:02:43 +02:00
Armin Novak
723056dab3
[codec,audio] fix warnings
2023-07-27 20:02:43 +02:00
Armin Novak
6c01433f6a
[core,smartcardlogon] fix warnings
2023-07-27 20:02:43 +02:00
Armin Novak
e61880d077
[standard] replace __FUNCTION__ with __func__
2023-07-27 20:02:43 +02:00
Martin Fleisz
bb9c32ed72
gateway: Allow authentication using a NULL (current user) identity
2023-07-26 16:35:36 +02:00
Armin Novak
70ddb6518a
[PathCchAppend] fix missing return checks
2023-07-26 10:57:42 +02:00
fifthdegree
8330aa1ac4
Log aad authentication_result as hex and string
2023-07-26 09:44:17 +02:00
ehdgks0627
3589e2468d
Refactor: Improve error message in is_within_surface function
...
In the function is_within_surface, the error message for out-of-bounds command rectangles has been enhanced for better clarity. The code has been modified to display the rectangle coordinates and surface dimensions in the error message. This change aims to make debugging easier and improve the overall code quality.
2023-07-25 20:12:10 +02:00
Armin Novak
a5ea634516
[core] fix cJSON compat
...
* only export used symbols, provide prototypes when required
* clean up some length checks
2023-07-24 09:54:49 +02:00
akallabeth
830d1e17b6
[utils] improve http request logging
2023-07-21 14:53:19 +02:00
akallabeth
14d0ec9335
[core] move http status to string to utils
...
freerdp_http_status_string and freerdp_http_status_string_format are now
exposed as public API functions to work with http status codes
2023-07-21 14:53:19 +02:00
Michael Saxl
bc2caa8504
[util,http] set sni on the ssl connection
2023-07-21 09:50:02 +02:00
dev
80c7818f99
fix warning
2023-07-21 09:14:54 +02:00
Armin Novak
3d1bb4e1d9
[client,common] allow forcing default callbacks
...
All clients can implement their own callbacks for
certificate/credential/smartcard/... but there is a common (default)
implementation for all clients.
with the new setting FreeRDP_UseCommonStdioCallbacks it is now possible
to force these over the client implementation provided ones
2023-07-20 14:25:08 +02:00
akallabeth
a0d38914d6
[core,aad] refactor use of cJSON
...
* link cJSON public to FreeRDP
* export compatibility functions for older versions of cJSON
2023-07-20 14:20:28 +02:00
akallabeth
5d8e21927c
[warnings] fix compiler warnings
2023-07-20 14:20:28 +02:00
Armin Novak
15fc803981
[utils,http] add openssl 1.1 compatibility
2023-07-20 14:20:28 +02:00
akallabeth
ee078cdda4
[warnings] fix format string warnings
2023-07-20 14:20:28 +02:00
akallabeth
1d94ae9cc0
[utils,http] fix parser checks
2023-07-20 14:20:28 +02:00
akallabeth
734117351d
[aad,avc] unify callbacks to GetAccessToken
...
The AAD and AVD authentication mechanisms both need an OAuth2 token.
They only differ in the provided arguments, so unify the callbacks into
a single one with variable argument lists.
2023-07-20 14:20:28 +02:00
fifthdegree
d309fcd6e8
Restructure Azure AD related stuff
...
- Move responsibility for obtaining access tokens to clients
- Add function for getting access tokens for AVD
- Get correct server hostname during AVD setup
- Add utility function for doing http requests
2023-07-20 14:20:28 +02:00
Pascal Nowack
4d7d136d1a
core/server: Remove invalid cast
...
The context of wMessage is already a pointer, so the cast into UINT_PTR
is wrong here.
Additionally, casts from void pointers are superfluous.
2023-07-20 11:36:11 +02:00
Armin Novak
6d9d118593
[core,nego] remove AUTHZ_RESULT from nego header
2023-07-13 09:25:45 +02:00
Armin Novak
555fa2c98a
[core,nla] print name of error code in log
2023-07-13 09:25:45 +02:00
Armin Novak
10e010329c
[client,file] add WebAuthN rdp file parsing support
2023-07-10 10:45:28 +02:00
akallabeth
e18918356f
[core,rdp] set logger context
2023-07-06 15:51:56 +02:00
Martin Fleisz
a5aad5159c
core: Fix issues in settings copy code
...
This code fixes an issue where some settings were lost when copying
settings around. I.e. the device count was first set but then calling
`freerdp_settings_set_pointer_len` caused the device count to be reset
to 0 because we passed `NULL` for the data value.
This means the count got lost upon the first copy and further copies
also resulted in losing the array data (because the count was set to 0).
This PR fixes this issue by first resetting the array and afterwards
setting the correct count value.
2023-07-06 14:26:38 +02:00
Bernhard Miklautz
9961570c9d
[utils] use select instead of poll to read passphrases on macOS
...
According to the man page on macOS poll currently doesn't support
devices. This includes `/dev/tty`.
In this use case poll will returned immediately indicating that
something can be read but the following read returned `-1`
(with errno set to EAGAIN).
Using select on macOS for passphrase reading prevents this problem.
2023-07-06 08:03:53 +02:00
akallabeth
4c862892b4
[core,gateway] clean up websocket transport
2023-07-05 13:18:54 +02:00
akarl10
76abdcdabf
[core,gateway] cleanup http response
2023-07-05 10:43:27 +02:00