Armin Novak
96cf17a45b
Replaced (IWTSPlugin*) casts with struct address return
2021-10-07 16:22:04 +02:00
akallabeth
7b7e2d6f32
Prefer constant division over multiplication for length checks
2021-09-21 08:55:22 +02:00
Armin Novak
673fb46836
Fixed uninitialized warnings
2021-09-10 08:16:25 +02:00
Armin Novak
0f8c52b9ca
Fixed const warnings with argument parser
2021-09-09 08:53:20 +02:00
Armin Novak
f515bd4560
Fixed shadowing and type errors
2021-08-24 10:45:57 +02:00
Armin Novak
610396e197
Fixed compilation warnings
...
Try to get the number of warnings down
2021-08-02 10:28:06 +02:00
Armin Novak
34413d9480
Fix data write on usb channel
2021-06-23 12:05:11 +02:00
Armin Novak
8ef57bf296
Replaced CMAKE_[SOURCE|BINARY]_DIR with PROJECT_[SOURCE|BINARY]_DIR
...
Thanks @Pollux42 for the hint in #7096
2021-06-22 08:54:18 +02:00
Armin Novak
0355bbc51f
Added missing log mapping for TRANSFER_OUT_REQUEST
2021-06-21 13:27:39 +02:00
Armin Novak
ccfe0c129e
Removed checks already done by WINPR_ASSERT
2021-06-16 11:46:42 +02:00
Armin Novak
d6c84c28fb
Renamed ArrayList_Add to ArrayList_Append
...
* Do not break API silently
2021-06-16 11:46:42 +02:00
Armin Novak
a1c8e4cf85
Refactored ArrayList_Add to conform to other functions
2021-06-16 11:46:42 +02:00
Armin Novak
d36d94766e
Replaced assert with WINPR_ASSERT
2021-06-14 09:37:07 +02:00
Armin Novak
51919af2d6
Add more information to urbdrc log entries
2021-05-28 09:39:34 +02:00
akallabeth
566f47f63b
Fixed compilation warnings.
2021-05-11 08:32:18 +02:00
akallabeth
ab49694101
Added new RDP file options
2021-05-11 07:59:05 +02:00
Ondrej Holy
892cbe3261
Fix various memory leaks reported by Coverity
...
Covscan report contains various memory leak defects which were marked
as important. I have spent some time analyzing them and although they
were marked as important, most of them are in error cases, so probably
nothing serious. Let's fix most of them anyway. The rest are false
positives, or too complicated to fix, or already fixed in master, or
simply I am unsure about them.
Relates: https://github.com/FreeRDP/FreeRDP/issues/6981
2021-04-27 14:25:20 +02:00
sss
6574fdf6e4
reverted changes from clang-format
2021-02-25 14:05:40 +01:00
Gluzskiy Alexandr
bee2e1526d
allow to use in single threaded mode
...
(some client side channels and all server side channels still need to be
ported to new api)
server: build fix, do not disable threads for rfx encoder
cliprdr client channel: implemented support for DisableThreads option
looks like thread does not make sense at all for this channel
do not initialize disabled image codecs (respect settings)
channels: client: rail: added support for DisableThreads setting
changed "BOOL DisableThreads" to "UINT32 ThreadingFlags"
dropped unnecessary apu changes
draft implementation of threading settings aware message handling api
for addins/channels
rail: use new messaging api
fixed memory leak
msgs handlers external api changes (as requested)
msgs_handlers: init fix
fixed memory leak
logic fix
resolved problems appeared after rebase to master, dropped unnecessary
changes
git clang-format origin/master
fixed TestFreeRDPCodecRemoteFX.c
"formatting, run `clang-format` please"
properly use new "rfx_context_new(BOOL, UINT32)" everywhere
passed Threading Flags to "rfx_context_new" where available
in older C standarts veriables declaration must be done before any code
requested changes
clang-format as requested
use broken signatures of standert C functions for m$ s**tos
clang-format
requested changes
requested changes
moved ThreadingFlags to stable api zone
define type for channel msg handler
typo fix
clang-format
build fix
us ThreadingFlags from server settings
git clang-format origin/master
clang-format
2021-02-25 14:05:40 +01:00
akallabeth
43311130a2
Fixed CodeQL warnings
2021-02-19 11:19:49 +01:00
akallabeth
e2fd9db0b5
Added const to function arguments
2021-02-17 11:29:56 +01:00
akallabeth
2e5280feec
Fixed possible out of bound access in usb channel.
2020-11-10 09:02:35 +01:00
akallabeth
6e3c00725a
Cleaned up collections:
...
ArrayList, MessageQueue, Queue, PubSub, BipBuffer
ObjectPool and BufferPool
2020-11-06 12:30:13 +01:00
akallabeth
6f00308db7
Fixed short length for usb io control return.
2020-08-13 13:51:38 +02:00
Armin Novak
6ce0517593
Manually free up libusb transfer data to avoid double free
2020-08-12 10:34:58 +02:00
Martin Fleisz
2d715e4681
Merge pull request #6429 from akallabeth/channel_init_check
...
Added duplicate initialization check for plugins.
2020-08-11 14:34:07 +02:00
Martin Fleisz
1e7330b861
Merge pull request #6363 from akallabeth/urbdrc_double_free_fix
...
[URBDRC] Added return checks for replaced HashTable with ArrayList
2020-08-11 14:33:17 +02:00
akallabeth
786f6bbfe8
Fixed missing async user data extraction from libusb transfer
2020-08-11 14:12:36 +02:00
Armin Novak
75aab487e2
Added duplicate initialization check for plugins.
2020-08-10 16:17:44 +02:00
Armin Novak
93ee13245c
Fixed urbdrc server notification of channel close
...
There was a recursion issue with usb device channel closing and
local redirected device removal.
If the local redirected device is removed due to hotplug events,
the device channel needs to be closed, which in turn checks if
the local device list contains the device. Ensure that the
channel close code is only executed when not called from the
channel side.
2020-08-10 13:40:41 +02:00
akallabeth
dbeaa614d6
Removed channel close in USB channel done after channel is freed
2020-08-10 13:34:30 +02:00
akallabeth
8c859575cf
Fixed access to user_data after free
2020-08-10 13:34:30 +02:00
akallabeth
54c92e78e6
Fixed invalid buffer length and duplicated write function.
2020-08-10 13:34:30 +02:00
akallabeth
e7533130a6
Fixed urbdrc arraylist locking
2020-08-10 13:34:30 +02:00
Armin Novak
28bc636d53
Unified streamID read/write
2020-08-10 13:34:30 +02:00
Armin Novak
3ebc71abf3
Replace wHashTable with wArrayList in USB channel
...
The streamID is not guaranteed to be uniqe, so add all transfers
to a list and remove by checking pointers instead of the streamID
2020-08-10 13:34:30 +02:00
Armin Novak
ea8f93441d
Added return checks for HashTable_Add
2020-08-10 13:34:30 +02:00
Armin Novak
57b405ca26
Fixed compilation warnings.
2020-08-10 12:14:11 +02:00
Armin Novak
8cee10319a
Fixed urbdrc device path
2020-07-07 10:43:08 +02:00
Armin Novak
6efc72707c
Fixed bDeviceClass check in udev_init
...
Use the proper constant 0xef (Miscellaneous) instead of
0xfe (Application Specific)
See https://www.usb.org/defined-class-codes
2020-07-07 10:43:08 +02:00
akallabeth
bc7d423c6c
Replaced malloc in urbdrc channel
2020-07-07 10:43:08 +02:00
akallabeth
804891c0e8
Fixed discrepancy in string descriptor default
2020-07-07 10:43:08 +02:00
akallabeth
37a5a7a157
Replaced memset in urbdrc
2020-07-07 10:43:08 +02:00
akallabeth
29e3b0ea51
Unified logging for urbdrc libusb wrapper
2020-07-07 10:43:08 +02:00
akallabeth
66e4eb628b
Initialize variable in func_instance_id_generate
2020-07-07 10:43:08 +02:00
akallabeth
8ee0fafa09
Improved error log for string descriptor read issues
2020-07-07 10:43:08 +02:00
akallabeth
2a493a58a8
Reverted check for short usb descriptor
2020-07-07 10:43:08 +02:00
akallabeth
2d95224488
Added compile time urbdrc debug option
2020-07-07 10:43:08 +02:00
akallabeth
fc8c07435f
Dump USB channel data with log-level trace
2020-07-07 10:43:08 +02:00
Armin Novak
ef4de12887
Fixed double free in urb_isoch_transfer_cb
2020-06-03 08:37:45 +02:00
Armin Novak
a5e2d62e48
Do not remove transfer data on usb cancel transfer
2020-06-03 08:24:17 +02:00
Florian Staudacher
d1dc2fb03d
report only actual bytes received, not allocated buffer size (interrupt produces data, timeout doesn't)
2020-06-02 09:21:30 +02:00
Florian Staudacher
03128d5154
only call 'libusb_set_interface_alt_setting' when value is changed
2020-05-29 10:48:23 +02:00
akallabeth
b584d07734
Fixed #6197 : NULL check in urbdrc
2020-05-20 15:02:24 +02:00
akallabeth
64ad42b95b
Fixed DestroyListener arguments and call order
2020-05-13 17:11:17 +02:00
akallabeth
2f5e5359f6
Destroy channel listeners on terminate
2020-05-12 11:40:42 +02:00
akallabeth
52dd312e11
Fixed various input buffer length checks in URBDRC
...
Thanks to hac425 CVE-2020-11039
2020-05-08 11:04:03 +02:00
akallabeth
9f77fc3dd2
Fixed int overflow in msusb_mspipes_read
...
Thanks to hac425
2020-05-08 11:04:03 +02:00
akallabeth
5305d62b72
Fix oob read in msusb_msconfig_read
2020-05-06 13:31:57 +02:00
Bernhard Miklautz
3e89574205
Merge pull request #6124 from akallabeth/speedup
...
Unify inline and some warning fixes
2020-05-05 15:34:38 +02:00
akallabeth
9d014fe1ea
Fixed compiler warnings for usb channel
2020-04-27 08:19:42 +02:00
Lukas Fink
0c27cecea4
Fixes null dereference bug
...
Avoids a null function pointer dereference that happened, when
freerdp_urbdrc_client_subsystem_entry failed before invoking
udevman_load_interface.
2020-04-26 19:09:13 +02:00
Lukas Fink
0cbff94aa9
Implemented udevman->hotplug_vid_pids as wArrayList
2020-04-26 19:09:13 +02:00
Lukas Fink
060253c9fa
Added ability to add usb devs via id and addr simultaneously
...
It is now possible to add usb devices both via vid+pid and via bus+addr
at the same time. To do this, the ids are directly
given to the corresponding command line options:
/usb🆔 <vid+pids>,addr:<bus+addrs>
The dev option still works like before: /usb:id,dev:<vid+pids> or
/usb:addr,dev:<bus+addrs>
2020-04-26 19:09:13 +02:00
Lukas Fink
0a5d0312d5
Added hotplug to /usb:id,dev option
...
Devices specified with the /usb:id,dev command line option are now
detected by the hotplug callback.
2020-04-26 19:09:13 +02:00
Lukas Fink
3d3cec4dc4
Fixed /usb:dev command line option
...
The /usb:dev command line option failed silently, because it tried to add the
devices before urbdrc gets initialized. This commit adds a new function
to udevman, that gets called when the urbdrc addin is initialized.
Registering of the given devices is now performed there.
2020-04-26 19:09:13 +02:00
akallabeth
c6666731d2
Removed casts in udevman_parse_device_id_addr
2020-04-21 08:05:06 +02:00
Lukas Fink
be884c2bf6
Refactored parsing of usb dev: command line option
...
Refactored urbdrc_udevman_register_devices with its helper functions,
because the old implementation was a bit quirky. Removed a unsafe
strcpy, that led to a buffer overflow when given misonstructed command
line options. Doing something like "/usb:id,dev🔢 1234##abcd:abcd"
won't work anymore, too.
2020-04-21 08:05:06 +02:00
jacobopantoja
0f8437d1d8
Restrict USBDK to Windows builds
...
This commit restricts ebdaea6f3b
to just Win32 builds
2020-04-11 09:04:29 +02:00
akallabeth
aa39e08c29
Fixed URBDRC DEVICE_ADD_FLAG definitions
2020-04-10 14:16:19 +02:00
akallabeth
42d40261c5
Fixed return type for subsystem entry
2020-04-10 14:11:15 +02:00
akallabeth
de7ea07a3d
Fixed URBDRC parsing error reported in #6024 .
2020-04-09 18:00:51 +02:00
Armin Novak
c58db76e4c
Fixed return check for usbdk backend.
2020-03-09 16:40:07 +01:00
Armin Novak
95522923ba
Move libusb hotplug registration to polling thread.
...
* libusb polling thread now is responsible for hotplug registration
and removal as well as cleanup.
* Only register hotplug callback on systems with support.
2020-03-06 12:07:22 +01:00
Armin Novak
ebdaea6f3b
enable usbdk on windows.
2020-03-06 12:07:22 +01:00
Armin Novak
e867ad3c9d
Fixed compilation issues against libusb on windows
2020-03-06 12:07:22 +01:00
Armin Novak
34498d4064
URBDRC: Only mark closed if control is closed.
2020-03-03 11:15:34 +01:00
Armin Novak
30990089b8
Implemented del_device by vid/pid
2020-03-02 11:40:05 +01:00
Armin Novak
1b1ab01e43
Cleaned up USB redirection
...
* Removed obsolete searchman
* Unified device add and virtual channel add
* Unified device id generation
2020-03-02 11:40:05 +01:00
Armin Novak
acb77391a2
Fix #5910 : USB hotplug added device wrong
...
When a USB device was added via hotplug add_device was called
with wrong arguments.
2020-03-02 11:40:05 +01:00
Armin Novak
53c15e3e90
Deactivate USB redirection for IOS and ANDROID by default.
2020-02-26 13:53:25 +01:00
Armin Novak
d633195879
Promoted usb, printer and smartcard dependencies to recommended
2020-02-25 17:36:17 +01:00
Martin Fleisz
e304428a5f
Merge pull request #5857 from akallabeth/scanbuild_fixes
...
Scanbuild fixes
2020-02-12 10:16:54 +01:00
Armin Novak
b004e01fc8
Exporting URBDRC symbols used by helper library
...
When building the usb channel with different shared libraries some
necessary symbols were not exported.
2020-02-11 12:42:45 +01:00
Armin Novak
8996fdc797
Fixed unused variable warning.
2020-01-23 10:12:12 +01:00
Armin Novak
f313fabb2b
Added fallback for libusb < 1.0.19
...
we use stream_id functions which were introduced with 1.0.19
2020-01-13 15:23:57 +01:00
Armin Novak
b5bb6e3ea9
Fixed LIBUSB_HOTPLUG_NO_FLAGS definition
...
libusb documentation is a bit misleading, this flag was
introduced with 1.0.20
2020-01-13 15:13:35 +01:00
Armin Novak
d0929cbf2f
Extend LIBUSB_API_VERSION check
...
The define exists since 1.0.13, so to compensate for older also
check if the variable is defined.
2020-01-10 10:52:23 +01:00
Armin Novak
b0de74cad2
Fallback definition for LIBUSB_HOTPLUG_NO_FLAGS
...
The flag was first introduced with libusb 1.0.16, so
define it if we are using an older version.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 17:14:09 +01:00
Armin Novak
d044915a7e
Fixed stream handling and missing includes.
2019-12-17 15:51:24 +01:00
Armin Novak
c4a141cd8a
Fixed some scanbuild warnings.
2019-11-22 11:47:16 +01:00
Armin Novak
0927d7aa50
Rewrite of urbdrc channel.
...
* Fix command line parsing
* Properly handle channel creation/destruction
* Use wStream API for parsing
2019-11-22 10:56:21 +01:00
Armin Novak
72ca88f49c
Reformatted to new style
2019-11-07 10:53:54 +01:00
Armin Novak
0c87eaee4d
COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
...
Remove the old global structs as the parser modifies them. When using
multiple instances in the same process space this could break parsing.
2019-10-28 13:30:05 +01:00
AzureusNation
4955a0e5b8
Fixes hub was not found! error
...
Again as with auto usb detection strtol needs to use base 10 and force to use base 10 else the conversion does not work correctly.
2019-10-23 09:56:23 +02:00
AzureusNation
7d6a10aaff
Fixes Auto USB Redirection
...
Base 0 does not work when converting the string to long int. This ends up not showing the correct device id and sometimes the wrong bus id. By changing it to base 10 conversion instead of base 0 this fixes the issue of auto redirect usb devices.
2019-10-23 09:56:23 +02:00
Kyle Evans
d796920f8f
(FreeBSD) Build fixes for urbdrc
2019-08-19 16:57:56 +02:00
Armin Novak
6c9130f7d6
Fixed sign-compare warnings.
2019-04-05 09:14:35 +02:00
Armin Novak
4430187e8d
Fixed sign-compare warnings
2019-04-05 09:13:24 +02:00
Armin Novak
ef1728faf5
Fixed NULL dereferences and uninitialized values
2019-01-30 16:11:10 +01:00