Commit Graph

2362 Commits

Author SHA1 Message Date
akallabeth
40a29037df Reverted check for short usb descriptor
(cherry picked from commit 6ba67a07be)
2020-07-07 10:44:11 +02:00
akallabeth
de5c013e37 Added compile time urbdrc debug option
(cherry picked from commit 5244efadcf)
2020-07-07 10:44:11 +02:00
akallabeth
f621d2efea Dump USB channel data with log-level trace
(cherry picked from commit e32ba76deb)
2020-07-07 10:44:11 +02:00
Kobi Mizrachi
f6cbe92b94 rail: server: rename rail_send_pdu -> rail_server_send_pdu
(cherry picked from commit ec06a98e84)
2020-07-06 11:15:37 +02:00
Kobi Mizrachi
cf6be7f6d4 rail_common.c: Fix rail_get_order_type_string
(cherry picked from commit 5438b94c97)
2020-07-06 11:15:31 +02:00
Kobi Mizrachi
7f10a9261c rail: server: mark rail_send_pdu as static function
(cherry picked from commit c3b28e8bce)
2020-07-06 11:15:25 +02:00
akallabeth
6565326bcd Use CMake to detect availability of getlogin_r
(cherry picked from commit 3a5bfd2bd0)
2020-07-06 11:13:51 +02:00
akallabeth
813204554d Fixed fallback to getlogin for android
(cherry picked from commit caff01877d)
2020-06-22 12:13:56 +02:00
akallabeth
eb1cf9a2ac Fixed broken const variable.
(cherry picked from commit 1c6a6923f8)
2020-06-22 12:13:31 +02:00
akallabeth
ac9f5e8f5d Use localtime_s on windows
(cherry picked from commit c3a1ed780c)
2020-06-22 12:12:35 +02:00
akallabeth
23161efa62 Fixed codition with side effects
(cherry picked from commit 1a02af5a12)
2020-06-22 12:12:21 +02:00
akallabeth
3606dfa921 Replaced getlogin with getlogin_r
(cherry picked from commit 36478d3d0b)
2020-06-22 12:12:02 +02:00
akallabeth
8c3f6d2b19 Replaced localtime with localtime_r
(cherry picked from commit 240fdd07b1)
2020-06-22 12:11:54 +02:00
Bernhard Miklautz
7f2de8419a fix [client channels]: move exported API calls to client/common
The functions mappedGeometryRef and mappedGeometryUnref are API
functions ([1]) but were implemented in the geometry channel.
In case FreeRDP was built with BUILTIN_CHANNELS=OFF those functions
weren't available globally but used by the video channel.

Now the functions are fixed part of the freerdp-client library and
therefore available for all channels.

[1] exported in freerdp/client/geometry.h

Fixes #6236

(cherry picked from commit 1628939227)
2020-06-22 09:30:42 +02:00
Armin Novak
b300c8a738 Do not remove transfer data on usb cancel transfer
(cherry picked from commit a5e2d62e48)
2020-06-16 11:20:18 +02:00
Armin Novak
fd42acc594 Fixed double free in urb_isoch_transfer_cb
(cherry picked from commit ef4de12887)
2020-06-16 11:20:18 +02:00
Armin Novak
192f922502 Fixed sign compare warnings with constants.
(cherry picked from commit 5ec66cc6c7)
2020-06-16 11:20:18 +02:00
Kubistika
66dfa56cc2 drdynvc: client: fix #6252 use-after-free
(cherry picked from commit 6ed765c960)
2020-06-16 09:08:52 +02:00
akallabeth
bc8ace351f Fixed formatting.
(cherry picked from commit d1b310d970)
2020-06-16 09:08:41 +02:00
Ondrej Holy
3f86260eaa smartcard: Teoretical fix of uninitialized values
This tries to fixes the following defects reported by covscan tool:
 - channels/smartcard/client/smartcard_operations.c:958: uninit_use_in_call: Using uninitialized value "ret.cReaders" when calling "smartcard_pack_locate_cards_return".
 - channels/smartcard/client/smartcard_operations.c:932: uninit_use_in_call: Using uninitialized value "ret.cReaders" when calling "smartcard_pack_locate_cards_return".

But I am not sure about it...

(cherry picked from commit 5345988352)
2020-06-16 09:08:34 +02:00
Ondrej Holy
5dbb255feb smartcard: Fix usage of uninitialized values
This fixes the following defect reported by covscan tool:
 - channels/smartcard/client/smartcard_pack.c:942: uninit_use_in_call: Using uninitialized value "tmp" when calling "ConvertFromUnicode".
 - channels/smartcard/client/smartcard_pack.c:894: uninit_use_in_call: Using uninitialized value "tmp" when calling "ConvertFromUnicode".
 - channels/smartcard/client/smartcard_pack.c:475: uninit_use_in_call: Using uninitialized value "tmp" when calling "ConvertFromUnicode".

(cherry picked from commit e70e25715f)
2020-06-16 09:08:28 +02:00
Patrick Chin
fa647175cb Fix memory leaks in client/encomsp_main.c and client/remdesk_main.c
(cherry picked from commit 28e29f8ad5)
2020-06-16 09:07:37 +02:00
Florian Staudacher
5491795588 report only actual bytes received, not allocated buffer size (interrupt produces data, timeout doesn't)
(cherry picked from commit 2e4f27ac9f)
2020-06-16 09:07:16 +02:00
Florian Staudacher
f681d2450f only call 'libusb_set_interface_alt_setting' when value is changed
(cherry picked from commit ea8c922355)
2020-06-16 09:06:45 +02:00
Armin Novak
0c779b4fef Fixed memory leak in rdpei
(cherry picked from commit 8c2c19bbc8)
2020-06-16 09:05:24 +02:00
akallabeth
ca246a6bfd Clear dynamic channel lists on disconnect.
(cherry picked from commit a1eb3e66b3)
2020-05-20 15:41:24 +02:00
akallabeth
5a1167f7e3 Fixed #6197: NULL check in urbdrc
(cherry picked from commit fb3a0e6b5a)
2020-05-20 15:41:24 +02:00
Armin Novak
ff31ac6da7 Fixed #6195: Wrong length read/write in rdpei
(cherry picked from commit a18a732d4b)
2020-05-20 15:41:24 +02:00
akallabeth
77b5043d21 Reset pointer to NULL after free.
(cherry picked from commit 33c7f808154c6682d3b84526a46d79f3e8d5c1ac)
2020-05-20 15:41:24 +02:00
akallabeth
9d5bb41445 Removed unused variable warnings
(cherry picked from commit 8052708f3354a686de98b62d641e9d0eb61a74db)
2020-05-20 15:41:24 +02:00
akallabeth
3a2ce9b8bd Fixed rails debug string warnings.
(cherry picked from commit e58ea30305e8754ada82018c4f2042ec1b72337c)
2020-05-18 17:10:01 +02:00
Vladyslav Hordiienko
9b473e03d0 fix typo in GFX logs
(cherry picked from commit a79635fd1c)
2020-05-18 16:56:03 +02:00
akallabeth
f88705c10c Extend lifetime of streampool in drdynvc
The stream pool can not be released until all streams have been
returned. This might happen as late as channel termination, so
change the lifetime scope accordingly.

(cherry picked from commit 5bd4cfcdc0)
2020-05-18 16:56:03 +02:00
akallabeth
a84d2783f9 Fixed drdynvc_send stream release
(cherry picked from commit a497e78d37)
2020-05-18 16:56:03 +02:00
akallabeth
3fe4650b2c Fixed DestroyListener arguments and call order
(cherry picked from commit 0e08727d4e)
2020-05-18 16:41:20 +02:00
akallabeth
47b4867729 Destroy channel listeners on terminate
(cherry picked from commit 2f5e5359f6)
2020-05-18 16:40:52 +02:00
akallabeth
74629de51b drdynvc channel cleanup.
* Clean channel listeners on channel close
* Remove limit on listeners for channels
* Remove limit on channels

(cherry picked from commit 5b2a4434d8)
2020-05-18 16:40:44 +02:00
akallabeth
79cea7b5b6 Fixed #6157: Reset cups instance on disconnect.
(cherry picked from commit 13906f3ec6)
2020-05-18 16:40:23 +02:00
akallabeth
c266a81323 Fixed #6163: Force linking to objective C runtime
Sound channel requires the objective C runtime, force linking to
fix build issues on older mac os versions

(cherry picked from commit eee1d7176b)
2020-05-18 16:39:28 +02:00
akallabeth
fae7b99a84 Fixed #6162: Clipboard temporary path length limit
The limit of clipboard temporary paths is 260 '\0' terminated
wide characters. Fix the checks to enforce that properly.

(cherry picked from commit 06bfcfad67)
2020-05-18 16:38:29 +02:00
akallabeth
d858616852 Changed smartcard no reader log message level to info
(cherry picked from commit 728f6aff516a12ac8720aa0c9fa1730cde348dca)
2020-05-08 11:11:12 +02:00
akallabeth
3e4a835c29 Fixed wrong error return from drdynvc_write_data
When the channel was closed a wrong error code was returned.

(cherry picked from commit 6446d609fc95830d7c9c1e6a91829146d567e277)
2020-05-08 11:11:12 +02:00
akallabeth
b1c7c9f59d Create data copy in case of dynamic sound channel.
(cherry picked from commit f016f1ec09)
2020-05-08 11:11:12 +02:00
akallabeth
1baac780e5 Use dedicated sound decoder thread. 2020-05-08 11:06:02 +02:00
akallabeth
eee9dead2d Fixed compiler warnings for usb channel 2020-05-08 11:06:02 +02:00
Armin Novak
a8c6f012d8 Silence SCARD_E_TIMEOUT warnings
These occur quite often for status calls, so reduce log verbosity.
2020-05-08 11:06:02 +02:00
akallabeth
e928888dab Fixed various input buffer length checks in URBDRC
Thanks to hac425 CVE-2020-11039
2020-05-08 11:06:02 +02:00
akallabeth
c1cef2d68c Fixed int overflow in smartcard_ndr_read
Thanks to hac425
2020-05-08 11:06:02 +02:00
akallabeth
af2ce439e1 Fixed int overflow in msusb_mspipes_read
Thanks to hac425
2020-05-08 11:06:02 +02:00
akallabeth
4c07a00403 Fixed int overflow in printer_write_setting
Thanks to hac425
2020-05-08 11:06:02 +02:00
akallabeth
98a4cd28bd Fixed int overflow in PresentationContext_new
Thanks to hac425 CVE-2020-11038
2020-05-08 11:06:02 +02:00
akallabeth
7c94b425e6 Fixed oob read in rdpsnd_recv_wave2_pdu
Check format index before using it.
Thanks to hac425 CVE-2020-11041
2020-05-05 07:46:10 +02:00
akallabeth
00b5ff301f Fixed clipboard 'called with invalid type' warning 2020-05-05 07:46:10 +02:00
akallabeth
f3de3ee16b Fix short format name configuration and format list return. 2020-05-05 07:46:10 +02:00
akallabeth
55f18cb8a5 Fix oob read in msusb_msconfig_read 2020-05-05 07:46:10 +02:00
akallabeth
a1a6790f99 Fixed oob read in irp_write and similar 2020-05-05 07:46:10 +02:00
akallabeth
b375d84ed6 Fixed oob read in parallel_process_irp_create 2020-05-05 07:46:10 +02:00
akallabeth
8d3d953264 Fixed oob read in parallel_process_irp_read 2020-05-05 07:46:10 +02:00
akallabeth
1d28ba56bd Fixed oob read in parallel_process_irp_write 2020-05-05 07:46:10 +02:00
akallabeth
b73143cf7e Fixed oob read in cliprdr_read_format_list 2020-05-05 07:46:10 +02:00
akallabeth
495cb2e312 Fixed cliprdr_server_receive_capabilities
Thanks to hac425 CVE-2020-11017, CVE-2020-11018
2020-05-05 07:46:10 +02:00
qarmin
9fd86bee46 Don't allow to overflow dev_array array 2020-05-05 07:46:10 +02:00
Lukas Fink
6425313776 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-05-05 07:46:09 +02:00
Lukas Fink
aae9640beb Implemented udevman->hotplug_vid_pids as wArrayList 2020-05-05 07:46:09 +02:00
Lukas Fink
c668d66e88 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-05-05 07:46:09 +02:00
Lukas Fink
efb929644e 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-05-05 07:46:09 +02:00
Lukas Fink
2e86e36200 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-05-05 07:46:09 +02:00
Alex Wilson
6e73a9ecf2 SCardReadCache/SCardWriteCache should actually cache data
Currently since the hash/keyCompare/keyClone members on the
context->cache were never being set, we were using the
HashTable_Pointer* variants, meaning that lookup always
failed (since we never ask for the same *pointer* twice).

This also revealed that the logic for autoallocate on these ops
was a bit backwards, and some error codes and support for the
"freshness" counter were missing.

In Win10 (at least with some card minidrivers) the freshness
counter is load-bearing and smartcard login won't work without
implementing a very basic version of it.
2020-04-28 14:03:19 +02:00
akallabeth
5587bc6fc3 Removed casts in udevman_parse_device_id_addr 2020-04-28 14:03:19 +02:00
Lukas Fink
af6aa50020 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-28 14:03:19 +02:00
akallabeth
d366b426f9 Fixi #6086: smartcard filter early abort.
Do not abort before incrementing read position.
2020-04-28 14:03:19 +02:00
Armin Novak
adb7aeb796 Fixed cups httpConnectEncrypt deprecation warning. 2020-04-28 14:03:19 +02:00
jacobopantoja
9c79bc29f6 Restrict USBDK to Windows builds
This commit restricts ebdaea6f3b to just Win32 builds
2020-04-28 14:03:19 +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
Alex Wilson
c6e675bfb7 Always copy null terminator when filtering smartcard list 2020-04-09 10:44:25 +02:00
Martin Fleisz
99786970a3
Merge pull request #5884 from akallabeth/smartcard_ndr_strict
Smartcard tighter input validation
2020-03-31 08:34:04 +02:00
akallabeth
2749de506c Added missing context and handle read. 2020-03-30 11:07:47 +02:00
Armin Novak
f360d445e2 Pack smartcard channel structs to 1 byte alignment 2020-03-27 18:24:25 +01:00
akallabeth
ac4ec690c9 Removed a few magic numbers. 2020-03-27 15:03:59 +01:00
akallabeth
80177efe69 Fixed typos, make status comparisons explicit. 2020-03-27 14:49:09 +01:00
Armin Novak
c406f7a972 Fixed misleading log message. 2020-03-10 14:05:10 +01:00
Armin Novak
b40762c542 Removed unused function 2020-03-10 14:04:53 +01:00
Armin Novak
cb9e7fda32 Removed unused function. 2020-03-10 14:04:53 +01:00
Armin Novak
c58db76e4c Fixed return check for usbdk backend. 2020-03-09 16:40:07 +01:00
Armin Novak
4692f00864 Removed unnecessary cast. 2020-03-09 16:40:07 +01:00
Kobi Mizrachi
929457db4c egfx: client: add missing NULL checks 2020-03-09 08:28:40 +01:00
Armin Novak
5690780bdd [RDPEGFX] checks for cache import, prevent 0 size allocations 2020-03-06 12:28:21 +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
35d7e896ae Fix GFX cache eviction, use 1 based indexing. 2020-03-04 11:01:23 +01:00
Martin Fleisz
6942669f32
Merge pull request #5941 from akallabeth/clang_fixes
Fixed clang scanbuild warnings.
2020-03-04 09:34:51 +01:00
Martin Fleisz
174832150e
Merge pull request #5932 from nfedera/fix_gfx_bitmapcache_indexing
Fix RDPEGFX bitmap cache indexing
2020-03-04 09:31:52 +01:00
Armin Novak
1fd51d9183 Fixed clang scanbuild warnings. 2020-03-04 09:17:35 +01:00
Norbert Federa
17e0d25104 dynvc/client: fix and improve channel closing code
- fixed and consolitate the duplicated code for sending the
  CLOSE_REQUEST_PDU to the server into dvcman_close_channel
- call dvcman_close_channel if a dynamic channel plugin fails
  to process the received channel data
- rdpegfx: don't try to remove a non-existing cache entry,
  return an error instead which now will close the channel, as
  expected by Microsoft's windows protocols test suite
2020-03-04 08:03:56 +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
Norbert Federa
39e12990e8 rdpegfx: rename MaxCacheSlot to MaxCacheSlots
Although Microsoft uses 1-based numbering on the wire for indexing the
GFX bitmap cache entries, the code in FreeRDP uses 0-based numbering and
therefore the name MaxCacheSlots is less confusing.
2020-03-02 09:55:25 +01:00
Norbert Federa
f4d5ec776f rdpegfx: use 1-based indexing for bitmap cache
Weird but Microsoft uses 1-based indexing in the RDPGFX bitmap
cache PDU's.

This does not seem to be documented but can be deducted from the
RDP client test code in Microsoft's "Windows Protocol Test Suites"
GitHub repository and the observation that mstsc aborts with a
protocol error if the cacheSlot index value 0 is used in e.g. a
GFX surface to cache PDU.
2020-03-02 09:55:25 +01:00
Armin Novak
2968e41409 Fixed missing boundary checks in smartcard_array_dump 2020-03-02 09:01:39 +01:00
Martin Fleisz
3318d1574f Fix possible NULL pointer access crash 2020-02-28 12:53:39 +01:00
Armin Novak
4eb4f58fbb Updated CMake channel detection
* Now both, dynamic and static channel entries can be defined by
  a single channel.
* Added better logging to distinguish between static and dynamic
  channel messages.
2020-02-28 12:53:39 +01:00
Martin Fleisz
da354feed0 Add dynamic channel part for rdpsnd channel 2020-02-28 12:53:39 +01:00
Martin Fleisz
347055492e
Merge pull request #5920 from akallabeth/rdpsnd_crash_fix
Fix #5885: Check for division by zero
2020-02-28 11:50:40 +01:00
Armin Novak
5e4603d0b7 Fix #5885: Check for division by zero 2020-02-27 13:56:53 +01:00
Armin Novak
95bf87a063 Replaced CMake list find with loop to fix build issues. 2020-02-27 11:18:54 +01:00
Martin Fleisz
f484b20787
Merge pull request #5907 from akallabeth/cmake_channel_dependency_fix
Cmake channel dependency fix
2020-02-26 16:18:46 +01:00
Armin Novak
829497b313 Made CHANNEL_TSMF optional and deprecated. 2020-02-26 13:56:43 +01:00
Armin Novak
53c15e3e90 Deactivate USB redirection for IOS and ANDROID by default. 2020-02-26 13:53:25 +01:00
Armin Novak
d8c3ccb375 drdynvc: reorder filepaths when adding channels 2020-02-26 10:19:12 +01:00
Armin Novak
d633195879 Promoted usb, printer and smartcard dependencies to recommended 2020-02-25 17:36:17 +01:00
Armin Novak
00f5f014c6 Fixed CMake channel dependencies for variables. 2020-02-25 16:56:42 +01:00
Armin Novak
0154d3ceb8 audin pulse log states by name 2020-02-25 14:57:42 +01:00
Armin Novak
451c4ddee6 Passing on error code from irp_free 2020-02-21 11:31:21 +01:00
Armin Novak
30db616cec Added a free function to erase streams not processed.
When shutting down the streams still in the queue were not properly
freed.
2020-02-21 11:31:15 +01:00
Armin Novak
bef8dda5e1 Fixed data length for list reader group return. 2020-02-20 15:35:11 +01:00
Armin Novak
5ab0716d7b SCardListReadersW return length is in bytes, not char. 2020-02-20 15:24:03 +01:00
Armin Novak
fd89ff6913 Fixed some conversion warnings. 2020-02-20 14:40:19 +01:00
Armin Novak
9b5f1ab384 Beautify smartcard log. 2020-02-20 13:59:28 +01:00
Armin Novak
893d08d653 Decreased smartcard log verbosity. 2020-02-20 13:59:28 +01:00
Armin Novak
a8e8351c1d Removed duplicated copyright claim 2020-02-20 13:59:28 +01:00
Armin Novak
f885476423 Fixed 8bit and 16bit return string sizes. 2020-02-20 13:59:28 +01:00
Armin Novak
ef93109f42 Fixes for GetAttrib and some refactroing
* Fix accidental buffer free before transfer
* Refactored code to eliminate a bunch of warnings
* Updated copyright headers
2020-02-20 13:59:28 +01:00
Armin Novak
fe61eab88c Fixed SCardReadCache autoallocate handling. 2020-02-20 13:59:28 +01:00
Armin Novak
04f0e679f7 Fixed NDR pointer handling for smartcard data. 2020-02-20 13:59:28 +01:00
Armin Novak
436b68e416 Fixed #5895: cast warnings. 2020-02-19 10:21:43 +01:00
Armin Novak
f77b3daaa0 Fix channel linking for built in channels 2020-02-18 11:14:05 +01:00
Armin Novak
f933cafa93 Added some callbacks to dynamic channel
* Allow listener removal of channel during runtime
* Allow retrieval of channel name
2020-02-18 11:14:05 +01:00
Vic Lee
25eb6b6cdd rdpsnd: implement buffer overrun detection. 2020-02-14 20:49:18 +08: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
David Fort
7c26d7d9ad
Merge pull request #5875 from akallabeth/smartcard_missing_null_check
Fix #5847: Missing length check to trace smartcard buffers.
2020-02-10 14:57:46 +01:00
Armin Novak
11d3ea3b43 Fix #5847: Missing length check to trace smartcard buffers. 2020-02-10 14:28:38 +01:00
Martin Fleisz
ebe0fc59b5 Merge pull request #5865 from akallabeth/write_cancelled_leak
Fix #5852: handle CHANNEL_EVENT_WRITE_CANCELLED
2020-02-10 12:08:55 +01:00
Martin Fleisz
1366abfbff Merge pull request #5869 from llyzs/winmm_fixes
rdpsnd/winmm: fix some memory issues.
2020-02-10 10:40:55 +01:00
David Fort
245fc6014d
Merge pull request #5830 from akallabeth/smartcard_updates
Smartcard updates
2020-02-07 14:11:00 +01:00
Vic Lee
847fe0f919 rdpsnd/winmm: fix some memory issues. 2020-02-04 17:56:45 +08:00
Armin Novak
d2aef75004 Fix #5852: handle CHANNEL_EVENT_WRITE_CANCELLED
When channels are cleaned up OpenHandle is most of the time
already 0. Ignore the argument checks for
CHANNEL_EVENT_WRITE_CANCELLED and CHANNEL_EVENT_WRITE_COMPLETE
only check where actually required (CHANNEL_EVENT_DATA_RECEIVED)
2020-01-29 08:52:25 +01:00
Armin Novak
11f2532242 Added unified NDR pointer reading. 2020-01-24 13:52:43 +01:00
Armin Novak
7b50ed887e Fixed missing length checks for smartcard IRP read. 2020-01-24 13:23:40 +01:00
Armin Novak
9128e441c6 Fixed rdpei unused function warning. 2020-01-23 10:50:37 +01:00
Armin Novak
f4ee8d92a7 Fixed smartcard type mismatches. 2020-01-23 10:39:43 +01:00
Armin Novak
087f290d8d Fixed type of index variable. 2020-01-23 10:12:12 +01:00
Armin Novak
8996fdc797 Fixed unused variable warning. 2020-01-23 10:12:12 +01:00
Armin Novak
f0db6f2ead Unified smartcart multistring conversion. 2020-01-23 10:07:54 +01:00
Armin Novak
ee7950c95c Fixed type mismatches on allocation. 2020-01-23 09:48:20 +01:00
Armin Novak
ec5881e3f2 Fixed smartcard_SetAttrib_Decode call type 2020-01-23 09:32:34 +01:00
Martin Fleisz
706e32982e rdpsnd: Add synchronization to winmm backend 2020-01-17 13:56:30 +01:00
Armin Novak
afaee324bb Fixed #5843 wrong header length for pdu
@boom1 reported encomsp_send_change_participant_control_level_pdu
fails due to wrong length.
2020-01-16 15:30:33 +01:00
Armin Novak
03e2106f25 Fixed accidental reorder of surface delete and disconnect 2020-01-16 15:24:55 +01:00
Martin Fleisz
369c696b23 rdpsnd: Fix possible crash and deadlock in winmm backend 2020-01-16 10:23:17 +01:00
Martin Fleisz
53f7927bf3 audin: Fix possible crash in winmm backend 2020-01-16 10:23:17 +01:00
Martin Fleisz
9cddb7c2be
Merge pull request #5836 from kubistika/proxy/fix_rail_and_update_issues
fixes: rail and update issues
2020-01-16 10:13:26 +01:00
David Fort
30d6e25def
Merge pull request #5750 from akallabeth/encomsp_auto
Encomsp automatic input control && cleanups
2020-01-15 13:56:00 +01:00
Kobi Mizrachi
b94143f644 rdpsnd: server: fix leak in rdpsnd_server_context_free 2020-01-15 13:51:05 +02:00
David Fort
d617de5a79
Merge pull request #5831 from akallabeth/drdynvc_error_tolerance
Ignore dynamic virtual channel errors
2020-01-15 10:49:53 +01:00
Kobi Mizrachi
29dee84a2b rail/server: rename rdpContext to rdpcontext
Fixes a compilation error when mixing c++ and c code.
2020-01-14 07:58:47 +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
Kobi Mizrachi
18be21a4fa rdpgfx: client: fix leak when using rdpgfx_client_context_new API 2020-01-13 13:41:44 +01:00
Kobi Mizrachi
2d9a50fafb fix memory leaks in disp server and gfx.c 2020-01-13 13:41:44 +01:00
Armin Novak
7011b008b5 Ignore dynamic virtual channel errors
If a dynamic virtual channel can not process a message, ignore it.
2020-01-13 12:23:30 +01:00
Armin Novak
dfe7b8c8da Implement missing functions for new smartcard
Newer smartcard channel behaviour expects a lot more callbacks
being implemented. This change provides them.
2020-01-13 11:27:37 +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
e86849759a Fixed waveOutClose, call waveOutReset first.
Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 18:25:08 +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
f720ec5383 RDPSND device API refinements
* Added default format callback for rdpsnd backend to allow
  different default input formats (different samplerates, ...)
* Made WINMM backend in flight packet limitation a compile time
  option
* Fixed missing buffer copy in winmm backend

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2020-01-08 17:14:09 +01:00
Martin Fleisz
05a865281e channels: Fix memory leak and make log messages more precise 2020-01-08 16:49:15 +01:00
Armin Novak
ac553e1bb5 Fix #5805: windows hotplug drive detection. 2020-01-07 10:35:12 +01:00
David Fort
31a4e2ad8b
Merge pull request #5745 from akallabeth/urbdrc_rewrite
Urbdrc rewrite
2020-01-06 09:23:45 +01:00
Martin Fleisz
a98e153b9d rdpsnd: Do not set output device on Catalina or later (#5747) 2020-01-03 13:31:15 +01:00
Martin Fleisz
d21e0a6d6d Fix audio channel init when no audio devices are present
This PR fixes the handling of using rdpsnd or audin when the system has
no audio device available.
In case of a missing playback device the
Windows backend now correctly reports an error and the fake rdpsnd
backend is loaded.
If audin is enabled and no microphone is present the channel
initialization will report an error but it won't cut the connection (as
it did before).
2019-12-30 12:59:14 +01:00
Armin Novak
947645520d Removed touch input channel thread
The touch input channel only sends small events (touch points et al)
and therefore does not require a heavy processing thread.
2019-12-18 11:36:12 +01:00
Armin Novak
d044915a7e Fixed stream handling and missing includes. 2019-12-17 15:51:24 +01:00
Kobi Mizrachi
3f9e6ca978 rdpgfx: surface_to_scaled_window: fix pdu type 2019-12-12 11:10:44 +01:00
Kobi Mizrachi
7af2483626 rail: keep extendedSpiSupported flag synced 2019-12-12 11:10:44 +01:00
Kobi Mizrachi
5565b366b0 rail: stream size checks and rail_read_sysparam_order fixes 2019-12-12 11:10:44 +01:00
Armin Novak
2d3d882de9 Stream size checks for rail_write_sysparam_order
Ensure the stream is large enough to hold the data
in rail_write_sysparam_order, rail_write_high_contrast and
rail_write_filterkeys.
2019-12-12 11:10:44 +01:00
Mati Shabtay
4dacb57f6f rail server: implement channel code for rail server
* Split common functionality from client code
* Clean up client code and use proper defines for constants
* Implements the channel code to read/write server side
  messages.
2019-12-12 11:10:44 +01:00
ajlex140
2f2f4f91d8 reply with empty irp package with error code, if irp device is unavailable 2019-12-09 11:43:02 +01:00
Armin Novak
da6ff1ca65 Removed some unnecessary casts. 2019-12-05 11:40:56 +01:00
Armin Novak
6e6dfc3e2a Removed rdpsnd client thread
The thread used to process audio data is not really required
and just produces overhead.
2019-12-05 11:40:56 +01:00
Martin Fleisz
71feb974ac
Merge pull request #5739 from akallabeth/improve_function_hiding
Improve function hiding
2019-12-02 11:31:35 +01:00
Armin Novak
7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
Martin Fleisz
4d8a4d39ba
Merge pull request #5748 from akallabeth/mac_sound_no_mic
Fix #5747: Only open output device in rdpsnd for mac.
2019-11-29 08:19:24 +01:00
David Fort
5e6775ce95 winpr: fix anonymous enum members and menbers without a size 2019-11-25 13:39:31 +01:00
Armin Novak
fd968cdf84 Fixed dead store warning. 2019-11-25 10:32:55 +01:00
Armin Novak
2691532061 Fixed const correctness of encomsp functions. 2019-11-25 09:39:21 +01:00
Armin Novak
65ebda20dd Fix #5747: Only open output device in rdpsnd for mac. 2019-11-25 08:27:57 +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
David Fort
d7e510016a
Merge pull request #5736 from akallabeth/makecert_cleanups
Cleaned up code for makecert.
2019-11-20 23:26:31 +01:00
Armin Novak
a5bebd3c65 Fixed scanbuild warnings. 2019-11-20 09:17:08 +01:00
Armin Novak
f9b3f270fe Fixed path NULL checks. 2019-11-19 10:48:25 +01:00
Armin Novak
4c5bfcc235 Fixed #5727: drive_process_irp_create set path to NULL if not provided. 2019-11-18 15:25:18 +01:00
Armin Novak
9f3adf10f8 Fixed #5727: use getmntent to read /proc/mounts 2019-11-18 15:25:18 +01:00