Commit Graph

398 Commits

Author SHA1 Message Date
Armin Novak 6e410e6dd4 Fixed broken message queue free function 2021-10-18 12:49:38 +02:00
Armin Novak 7d80c74e97 Cleaned up RDPDR channel interhitance
* All channels inheriting from RDPDR_DRIVE base struct
* Add functions to create/free a new device of a type
* Fixed settings array resize code, prevent 0 sizes
2021-10-18 09:21:02 +02:00
akallabeth e0a531f728
Channel fixes (#7309)
* Added missing CHANNEL_NAME defines.

* Fixed FreeRDP_ChannelDefArray setter

* Fixed code duplication due to merge error

* Added public function freerdp_channels_from_mcs

* Fixed const correctness in mcs
2021-09-22 14:27:21 +02:00
akallabeth a3a935283b Fixed invalid read in rdpdr 2021-09-20 10:59:59 +02:00
Armin Novak 0fe1e2359e Fixed all reserved-id-macro warnings 2021-09-10 08:16:25 +02:00
Armin Novak 95ecc6929a Refactored channel error handling
* Fix WINPR_ASSERT if a client can not allocate new resources,
  terminated cleanly instead.
* Add WINPR_ASSERT for lots of channel arguments
2021-09-09 08:53:20 +02:00
Armin Novak 467f7c3f6a Fixed proxy ulimit graceful client disconnect 2021-09-09 08:53:20 +02:00
Armin Novak 275f9ab2f6 Added listforeach wrapper 2021-07-29 15:09:53 +02:00
Armin Novak 4e3a7562af Clarified log message for device redirection 2021-07-29 15:09:53 +02:00
Armin Novak da57b0b91b Fixed resource cleanup 2021-07-29 15:09:53 +02:00
Armin Novak 55592049dc WINPR_ASSERT for drive redirection 2021-07-29 15:09:53 +02:00
Armin Novak a788145519 Fixed wrong error message 2021-07-29 15:09:53 +02:00
Martin Fleisz 6ecdd82e28 rdpdr: Fix length calculation for client name response 2021-07-07 11:48:56 +02:00
Armin Novak 8276c145e0 Fixed rdpdr related warnings 2021-06-18 11:32:16 +02:00
Armin Novak c4c5847f81 channels: Fixed warnings, added assertions 2021-06-18 11:32:16 +02:00
Armin Novak ccfe0c129e Removed checks already done by WINPR_ASSERT 2021-06-16 11:46:42 +02:00
Biswapriyo Nath 4c9754b269 Read from QuadPart from LARGE_INTEGER variables. 2021-05-31 13:38:19 +02:00
Armin Novak d039a1ac8f Filter RDPDR types other than drives on windows hotplug 2021-03-09 13:58:28 +01: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
Armin Novak c7bf33aad0 Fixed drive hotplug path comparison. 2021-01-27 09:27:08 +01:00
akallabeth 9e8d3fbbf5 Check drive to hotplug for already being redirected
some hotplug implementations report the same drive multiple times.
to avoid redirecting the same drive multiple times check if it is
already in the list before adding.
2021-01-15 10:41:12 +01:00
Martin Fleisz c78e31e451 channel/rdpdr: Fix hotplug for drive redirection on Windows
The path was incorrectly cut of after the drive letter causing hot
plugged drives to show up empty and disconnecting the client if the
device was removed later on.
2020-11-13 12:26:29 +01:00
akallabeth 66dc4cc9ee Fixed compilation warnings. 2020-11-10 08:53:43 +01:00
akallabeth 6e3c00725a Cleaned up collections:
ArrayList, MessageQueue, Queue, PubSub, BipBuffer
ObjectPool and BufferPool
2020-11-06 12:30:13 +01:00
akallabeth 6e5f5de439 Do not abort disc hotplug if no access to mount tab. 2020-10-27 15:45:56 +01:00
Alexandr 616af2d5b8
fixed build on freebsd (#6395)
* fixed build on freebsd
2020-07-27 11:36:24 +02:00
Marco van Wieringen 9db147c317 Add support for getmntent support on Illumos
This implements reading mount entries on Solarish operating systems like
OpenIndiana etc using the somewhat different getmntent support available
there.
2020-07-24 09:16:46 +02:00
akallabeth b971c5c97f Use CMake to detect availability of getlogin_r 2020-07-01 16:50:20 +02:00
akallabeth caff01877d Fixed fallback to getlogin for android 2020-06-22 12:09:36 +02:00
akallabeth 1c6a6923f8 Fixed broken const variable. 2020-06-22 11:51:39 +02:00
akallabeth 36478d3d0b Replaced getlogin with getlogin_r 2020-06-22 11:51:38 +02:00
qarmin fe8bad1698 Don't allow to overflow dev_array array 2020-05-01 20:34:59 +02: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 436b68e416 Fixed #5895: cast warnings. 2020-02-19 10:21:43 +01: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 ac553e1bb5 Fix #5805: windows hotplug drive detection. 2020-01-07 10:35:12 +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 9f3adf10f8 Fixed #5727: use getmntent to read /proc/mounts 2019-11-18 15:25:18 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak 75ed12f1f0 Fixed userdata pointer and CHANNEL_EVENT_WRITE_CANCELLED message. 2019-11-06 13:01:43 +01:00
Armin Novak 1bcb799560 Listen to CHANNEL_EVENT_WRITE_CANCELLED and emit if queue is cleared. 2019-11-06 13:01:43 +01:00
Armin Novak 1b78b59926 Fixed #4809: Properly process CHANNEL_EVENT_WRITE_COMPLETE 2019-11-06 13:01:43 +01:00
Armin Novak 09d14a2462 Fixed VirtualChannelWriteEx error case leaks. 2019-11-06 13:01:43 +01:00
Armin Novak 64f64cd035 devman_load_device_service device argument can be const. 2019-10-24 15:04:48 +02:00
Armin Novak 5e9f454256 Use stat instead of lstat to iterate /Volumes
Some entries are symbolic links, so follow them and check the link
target for being a directory.
2019-09-12 14:35:01 +02:00
Armin Novak 6f82ab6204 Hotplugging only for drive redirection. 2019-09-12 11:14:39 +02:00
Armin Novak 15bc118d78 Names of services are now const. 2019-09-04 15:48:34 +02:00
Armin Novak 935ed36e68 Add dynamicDrives hotplug option. 2019-08-23 10:27:01 +02:00
Armin Novak 3eb3ad3cab Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak 9566ae0e90 Fixed mac compilation warnings. 2019-02-21 17:30:12 +01:00
Martin Fleisz 22e666d2d0
Merge pull request #5225 from akallabeth/rdprd_caps_read_fix
Fixed size checks when reading rdpdr capabilities.
2019-02-08 09:05:27 +01:00
Bernhard Miklautz 162a69b0f0
Merge pull request #5139 from akallabeth/drive_hotplug_shutdown_crash_fix
Fixed crash on drive hotplug shutdown.
2019-02-07 10:08:41 +01:00
Armin Novak 51039f6535 Fixed compiler warnings #5210 2019-01-29 16:15:23 +01:00
Armin Novak 8b7da77f36 Fixed size checks when reading rdpdr capabilities. 2019-01-29 11:50:27 +01:00
Armin Novak 192680a001 Added callback to handle printer custom components in printer backend. 2018-12-12 10:57:53 +01:00
Armin Novak 598ece4ae7 Fixed crash on drive hotplug shutdown. 2018-12-12 09:32:09 +01:00
Jonathan Lafontaine 35d7a1e38d Allow fixed drive redirection on Windows (a:, c:, ...) and fix macos drive duplication. 2018-10-29 10:17:42 -04:00
Norbert Federa 0572572eb9 fix issue with fnObjectFree and related casts
- remove unnecessary/dangerous OBJECT_xxx function-style casts
- fix -Wstrict-prototypes issue with OBJECT_NEW_FN definition
2018-10-19 11:30:01 +02:00
Armin Novak 62c1696d4c Removed use of unchecked sprintf 2018-08-27 14:34:42 +02:00
Armin Novak 114abad767 Removed use of strcpy. 2018-08-27 14:34:09 +02:00
Ondrej Holy 1001807c5f channels/rdpdr: Prevent buffer overflow found by covscan
buffer_size_warning: Calling strncpy with a maximum size argument of 256 bytes on destination array "irp->PathName" of size 256 bytes might leave the destination string unterminated.
buffer_size_warning: Calling strncpy with a maximum size argument of 256 bytes on destination array "irp->ExtraBuffer" of size 256 bytes might leave the destination string unterminated.
2018-08-22 13:35:43 +02:00
Ondrej Holy 472576e6e0 channels/rdpdr: Format code by astyle
Run ./scripts/format_code.sh before the following changes.
2018-08-22 13:35:43 +02:00
Ondrej Holy 10bddb9fd9 channels/rdpdr: Fix leak found by covscan
leaked_storage: Variable "newbuf" going out of scope leaks the storage it points to.
leaked_storage: Variable "keys" going out of scope leaks the storage it points to.
leaked_storage: Variable "pKeys" going out of scope leaks the storage it points to.
leaked_storage: Variable "s" going out of scope leaks the storage it points to.
leaked_storage: Variable "computerNameW" going out of scope leaks the storage it points to.
leaked_storage: Variable "s" going out of scope leaks the storage it points to.
2018-08-22 13:35:43 +02:00
Armin Novak 4035ed46c8 Added automount flag for windows and macos implementations. 2018-07-30 12:37:19 +02:00
Armin Novak e8393a22e2 Remember if drive was added by automout. 2018-07-30 12:31:11 +02:00
Armin Novak a716dc244c Removed duplicate resource free. 2018-06-18 10:23:57 +02:00
Armin Novak 357391bd93 Fixed channel duplicate disconnect handling 2018-04-09 11:26:43 +02:00
Armin Novak 2517755d25 Fixed thread function return and parameters. 2018-03-07 14:36:55 +01:00
Armin Novak 64cfd750f9 Fixed #4384: Drive hotplug detection 2018-01-25 15:43:53 +01:00
David Fort 41823080f9 Fix users of Stream_GetPosition() that returns size_t 2017-12-11 22:38:58 +01:00
Armin Novak 9859cfb736 Fixed dead store. 2017-11-15 15:54:38 +01:00
Bernhard Miklautz bbd11eef1d Merge pull request #4045 from akallabeth/drive_fixes_overlayfs
Drive fixes overlayfs
2017-09-22 17:22:00 +02:00
David Fort dbc5584a68 Merge pull request #4052 from akallabeth/mac_fixes
Mac drive fixes
2017-09-12 23:16:39 +02:00
Bernhard Miklautz 6a83a1e7fa Merge pull request #4050 from akallabeth/rdpefs_server_client_name_fix
Mask out ignored bits from UnicodeFlag.
2017-08-29 10:35:45 +02:00
Armin Novak 41f919b8bd Fixed integer size warnings. 2017-07-24 11:31:48 +02:00
Armin Novak 9318707291 Added return check for ConvertFromUnicode. 2017-07-24 08:53:21 +02:00
Armin Novak 3586f8502c Fixed missing unicode conversion for mac drive redirection. 2017-07-20 12:35:43 +02:00
Armin Novak 8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Armin Novak 0e6a44faf3 Mask out ignored bits from UnicodeFlag. 2017-07-19 09:41:58 +02:00
Armin Novak 8fa6020b5f Add legacy mount locations, limited max depth. 2017-04-18 09:13:35 +02:00
Armin Novak c1872de641 Fixed WCHAR/CHAR conversion for drive path. 2017-04-13 16:20:01 +02:00
Armin Novak b0599f8c54 Fixed hotplug mount locations. 2017-04-13 15:55:50 +02:00
Armin Novak b2c29158be Scanbuild warning, argument checks and leak fixes.
* Added Stream_GetRemainingCapacity to check remaining stream size
  before writes.
* Fixed shadow server memory leak.
* Fixed lots of scanbuild warnings
* Added missing argument checks in many functions
* Added missing static function declarations
2017-03-02 18:13:43 +01:00
Armin Novak 9f19da798c Added attach/detach support for channels. 2016-12-19 17:07:01 +01:00
Norbert Federa f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
Norbert Federa c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01:00
Martin Haimberger 7fe28a8a78 virtualChannel: removed static variable usage from
VirtualChannelApi
2016-11-23 04:17:56 -08:00
Martin Haimberger 088a04fa44 rdpdr: using new VirtualChannelEx api 2016-11-23 01:26:03 -08:00
Marc-André Moreau dee76617d9 channels: remove thread-local storage usage 2016-11-15 11:41:01 -05:00
Marc-André Moreau 70c4646722 channels: restore global tables for initHandle, openHandle mappings instead of thread local storage 2016-11-14 15:23:05 -05:00
Armin Novak 9f5da483dc Reformatted files touched in last 2 commits. 2016-10-06 13:43:12 +02:00
Armin Novak 88a3b8dd76 Initializing channel context in each thread. 2016-10-06 13:43:12 +02:00
Armin Novak dadc5262ae Removed static channel variables.
Global static variables do not work, if more than one instance
of an RDP client is running in the same process space.
Removed the varaibles where possible and replaced them with
thread local storage where necessary.
2016-10-06 13:43:09 +02:00
Armin Novak 35f1347d53 Fixed warnings and mac build. 2016-10-06 13:43:04 +02:00
David PHAM-VAN 4265177f9f Fix Memory Leaks in RdpDR 2016-09-15 10:44:15 -07:00
Marc-André Moreau 915b9a15b1 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	winpr/libwinpr/bcrypt/CMakeLists.txt
2016-05-11 11:05:17 -04:00
Marc-André Moreau 4d629a7999 freerdp: UWP porting 2016-03-29 16:03:15 -04:00
Armin Novak f45be8dab0 Print device name when loading channel. 2016-03-17 09:33:39 +01:00