225 Commits

Author SHA1 Message Date
Armin Novak
1fb02134e6 [channels,drive] fix missing return checks 2026-03-03 13:49:58 +01:00
Armin Novak
2c0c55dc46 [c23,channels] replace NULL with nullptr 2026-02-26 13:43:54 +01:00
Armin Novak
e58819830a [c23] simplify boolean checks 2026-02-26 11:51:05 +01:00
Armin Novak
48267edf2f [winpr] add WINPR_C_ARRAY_INIT
since C23 allows c++ style initializing replace direct use with this
macro
2026-02-25 19:23:08 +01:00
Armin Novak
f14096d468 [channels] mark functions [[nodiscard]] 2026-02-24 11:31:57 +01:00
Armin Novak
5f10ae9599 [channels,rdpdr] fix IRP handling
* clean up IRP creation
* Properly handle each IRP, call irp->Complete or irp->Discard only once
  for each IRP
* For each channel split IRP handling, one function prepares the data
  and a single evaluate function later calls irp->Complete or irp->Discard
2026-02-17 16:38:31 +01:00
Armin Novak
118afc0b95 [allocations] fix growth of preallocated buffers
* Replace * 2 with * sizeof(WCHAR) for string usages
* Grow streams and other buffers reasonably, e.g. add 128 elements per
  try and check for possible overflows
* Add constant postfix to force them to 64bit
2026-02-17 13:54:34 +01:00
Armin Novak
0a4122fb27 [channels,drive] name volume with freerdp_getApplicationDetailsString 2026-02-10 11:20:13 +01:00
akallabeth
b20a1274f0 [c,printf] fix wlog format string to match arguments 2026-01-16 11:39:42 +01:00
akallabeth
a3cb09c81c [c,printf] fix wlog format string to match arguments 2026-01-16 11:39:39 +01:00
akallabeth
3da319570c [channels,drive] fix constant type
ensure constant is of 64bit integer type
2026-01-12 09:03:39 +01:00
Armin Novak
a4dfa2ca7e [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:33 +01:00
Armin Novak
15b0085ddf [clang,warnings] fix Wjump-misses-init 2026-01-08 11:32:33 +01:00
Martin Fleisz
236959c440 [channels,drive] Small performance improvements in drive channel
This commit fixes following performance issues in the drive channel:
- `GetFileAttributes` functions where using `FindFirstFile` to query
  attributes. The same can be achieved with `stat` and reusing the
existing stat <-> file info conversion code.
- `drive_file_query_information` was calling `CreateFile` on directories
  which will always fail with the given parameters.
2025-11-20 14:26:19 +01:00
akallabeth
50a64d543f [channels,drive] tolerate drive_file_set_disposition_information
the length field did change a lot during the eveolution of the protocol.
Be lenient on values that might occur as long as they satisfy the
basic requirements.
2025-09-01 21:12:02 +02:00
Armin Novak
abbb998dca [channels,drive] unify drive redirection handling 2025-06-05 11:58:47 +02:00
akallabeth
cf35364efa [channels,drive] fix file rename length checks 2025-06-02 20:22:50 +02:00
akallabeth
0a854001f7 [channels,drive] encapsulate drive information processing 2025-06-02 17:31:01 +02:00
akallabeth
ad9e3df18f [channels,drive] fix error checks and log messages 2025-05-27 16:27:43 +02:00
akallabeth
03f20da4e6 [channels,drive] fix drive register 2025-05-22 19:40:13 +02:00
akallabeth
3dee8895ec [rdpdr,hotplug] fix passing of device::Id back to caller 2025-05-22 11:17:21 +02:00
ljh0121
0d1b044436 fix: [channel,drive] Fix failure when renaming non-empty directories 2025-05-20 16:56:02 +09:00
Armin Novak
f5924a6556 [channels,rdpdr] expose device add/remove/hotplug
* Add RdpdrClientContext to OnChannelConnectedEventHandler
* Expose device register/unregister in RdpdrClientContext
* Expose device hotplug poll function in RdpdrClientContext
2025-05-12 17:27:07 +02:00
ljh0121
842388c261 feat: init commit 2025-05-12 09:57:40 +09:00
Armin Novak
b3605bd3da [channels,rdpdr] assert Completion callback 2025-03-26 16:58:11 +01:00
David Lechevalier
f301e2b222 [channels,drive] Prefer using handle from IRP_CREATE when possible
Windows can query information on a file recently renamed using a
handle created before the rename
2025-03-13 08:43:36 +01:00
akallabeth
bfa8c498f1 [channels,drive] Use allocationSize for IRP_CREATE 2025-03-05 23:48:58 +01:00
akallabeth
3ed1545319 [channels,drive] log FSInformationClass 2025-03-05 23:48:31 +01:00
akallabeth
44f5b6c409 [warnings] fix various clang warnings 2025-02-04 11:22:00 +01:00
akallabeth
3092313d49 [channes,rdpdr] use NTSTATUS for IoStatus
the IoStatus will hold NTSTATUS values but is defined unsigned in
[MS-RDPEFS] whereas NTSTATUS is defined as signed integer. Ignore the
spec here and just treat it as signed (eliminates warnings and twos
complement will ensure the values are equal in bit representation)
2025-01-07 10:11:21 +01:00
akallabeth
be3ba1c425 [warnings,channels] fix integer casts 2024-12-25 13:29:07 +01:00
akallabeth
ac9cf26bce [cmake] fix define_channel_options
* fix usage of default value
* fix defaults of channels
* unify to single CMake function define_channel_options
2024-12-17 16:29:32 +01:00
akallabeth
861e3bbe65 [channels,drive] allow operation on main thread 2024-12-03 09:58:09 +01:00
akallabeth
faae38120c [cmake,format] reformat all cmake files 2024-11-27 20:41:48 +01:00
akallabeth
9db7deb30b [warnings] initialize ULARGE_INTEGER 2024-10-30 10:20:41 +01:00
akallabeth
490ca0453b [winpr,stream] use Stream_BufferAs instead of casting 2024-10-01 10:34:42 +02:00
akallabeth
586f40631f [warnings] fix shorten-64-to-32 2024-09-17 16:13:48 +02:00
akallabeth
965d231e49 [return checks] fix use of CloseHandle 2024-09-16 08:22:31 +02:00
akallabeth
cd18dea174 [return checks] fix use of unicode functions 2024-09-16 06:48:26 +02:00
akallabeth
fe6d861a5c [channels] fix VCAPITYPE for all channel entry points 2024-09-03 17:26:58 +02:00
Armin Novak
fe76bafd57 [channels,drive] fix out of bound access 2024-08-21 09:20:25 +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
b9a1f791f7 [channels,drive] fix wrong function usage
_wcslen is for WCHAR, wcslen for wchar_t
2024-03-18 13:27:32 +01:00
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +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
Armin Novak
9575f386cd fixed WCHAR constants, use endian safe definitions 2023-12-20 09:03:58 +01: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
Martin Fleisz
45ee30da5e rdpdr: Fix potential null pointer access 2023-08-02 19:09:26 +02:00
Armin Novak
99bf501f0f [channels,drive] remove unused member filename 2023-07-26 10:57:42 +02:00