Commit Graph

1650 Commits

Author SHA1 Message Date
David Fort
dbc5584a68 Merge pull request #4052 from akallabeth/mac_fixes
Mac drive fixes
2017-09-12 23:16:39 +02:00
Martin Fleisz
e28ea4555f channels: Don't send gfx capversion 10 if AVC420 is requested 2017-09-11 12:05:03 +02:00
Armin Novak
8a5c78bde6 Unified dynamic channel cleanup code. 2017-08-31 09:55:59 +02:00
David Fort
5115ecd948 Merge pull request #4063 from akallabeth/auth_fixes
Fixed leaks, certificate comparison and channel context cleanup
2017-08-30 10:19:12 +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
Bernhard Miklautz
52fbfb7b12 fix clang warnings, directly include wtypes.h (#4097)
* build: clang use -Wno-unused-command-line-argument

With clang 5.0 builds are quite noisy otherwise.

* Directly include wtypes.h

Directly include winpr/wtypes.h where _fseeki64 or _ftelli64 is used.

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning: parentheses-equality

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning: tautological-compare

* fix build warnings with clang 5

clang version: 5.0.0-svn310678-1~exp1 (branches/release_50)
Warning:
incompatible pointer types passing 'size_t *' (aka 'unsigned
long *') to parameter of type 'UINT32 *' (aka 'unsigned int *')
[-Wincompatible-pointer-types]
2017-08-29 09:09:38 +02:00
Armin Novak
32de218c3f Fixed file seek. 2017-08-08 10:52:11 +02:00
Mike Gabriel
c045bddf3f Fix typos in some error messages 2017-08-03 08:38:05 +02:00
Armin Novak
8a0cec946b Added AVC420 in AVC444 shadow encoding 2017-08-02 09:42:04 +02:00
Armin Novak
523a881663 Channels with a context must free it themselves. 2017-07-28 08:39:51 +02:00
Armin Novak
d1ebc39b07 Fixed file errno mapping. 2017-07-24 15:05:48 +02:00
Armin Novak
9a2c9c47d7 Fixed buffer read. 2017-07-24 11:32:54 +02:00
Armin Novak
41f919b8bd Fixed integer size warnings. 2017-07-24 11:31:48 +02:00
Armin Novak
6a06c8d991 Additional error checks for drive channel. 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
478ca97a16 Fixed resource cleanup. 2017-07-20 09:35:41 +02:00
Armin Novak
8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Armin Novak
0490aeb018 Fixed clang malloc integer overflow warnings. 2017-07-20 09:29:48 +02:00
dodo040
03723c2738 fix wrong declaration 2017-07-19 13:16:08 +02:00
dodo040
722e927c64 redirect specific smartcard readers 2017-07-19 13:16:08 +02:00
Armin Novak
0e6a44faf3 Mask out ignored bits from UnicodeFlag. 2017-07-19 09:41:58 +02:00
Armin Novak
5764d5a78a Disable GFX H264 if no backend compiled in. 2017-07-17 09:25:21 +02:00
Norbert Federa
36b8f54c5e Fixed a few compiler warnings 2017-07-10 17:52:05 +02:00
Andre Gemuend
512d8a8dec Fix compilation on RHEL 6.x by macro-guarding two functions that were
added in gstreamer 0.10.31 (RHEL 6.x being on 0.10.29).
2017-06-27 17:12:23 +02:00
weizhenwei
bd94dcc6d5 remove duplicate code when freeing drive 2017-06-23 09:28:42 +08:00
weizhenwei
3b52a60d31 remove useless NULL pointer check before free 2017-06-23 09:21:16 +08:00
weizhenwei
61b24bf0b3 add NULL pointer check and set freed pointers to NULL afterward 2017-06-22 17:53:51 +08:00
weizhenwei
fa1c65b656 refactor to remove duplicate code and replace free+malloc with realloc 2017-06-22 10:21:20 +08:00
weizhenwei
2d56e22e9e refactor on redundant code copy 2017-06-21 22:07:07 +08:00
weizhenwei
bcd8ddef59 fix compile error on win64.vs2010 platform 2017-06-21 15:43:41 +08:00
weizhenwei
46b841be13 fix memory leak on rail_virtual_channel_event_data_received() -> StreamNew() 2017-06-21 15:26:28 +08:00
weizhenwei
a2ecf403b2 fix memory leak at drive_register_drive_path() and drive_free() 2017-06-21 15:26:28 +08:00
weizhenwei
7e5b766f78 fix memory leak at rail_client_execute() 2017-06-21 15:26:28 +08:00
weizhenwei
ccdaf15a75 fix memroy leak on rail_recv_exec_result_order() execResult 2017-06-21 15:26:27 +08:00
Armin Novak
98736c9d4d Fix #3995: File size information 2017-06-09 13:02:50 +02:00
David Fort
5ef9232703 Merge pull request #3905 from ilammy/x11-cliprdr/file-clipping
Local-to-remote file clipping for xfreerdp
2017-06-07 21:20:34 +02:00
ilammy
75fa3ad2a0 channels/cliprdr: avoid possible integer overflow
If the server sends us garbage (or the client provides it) then it is
possible for the multiplication to overflow (as it is performed on
unsigned 32-bit values) which will result in a false positive failure of
the sanity check. Avoid it by rearranging arithmetics a little.

Keep the multiplication in the error message because we are interested
in the number of bytes in the stream and how it compares to the number
we have expected based on the presumed file count.
2017-06-01 16:05:07 +03:00
David Fort
3470c4d5f8 Merge pull request #3969 from chipitsine/cppcheck
resolve issue found by cppcheck
2017-05-31 16:48:12 +02:00
Ilya Shipitsin
06edf5f7c5 resolve an issue found by cppcheck:
[channels/tsmf/client/tsmf_main.c:89] -> [channels/tsmf/client/tsmf_main.c:95]: (warning) Either the condition '!callback' is redundant or there is possible null pointer dereference: callback.
2017-05-31 14:32:59 +05:00
joy.you
921f0b7480 fixed issue:#3974
ConvertToUnicode failed
2017-05-27 16:10:41 +08:00
David Fort
48163a27db Merge pull request #3906 from akallabeth/addin_cast_fix
Addin cast fix
2017-05-22 11:12:05 +02:00
David Fort
b92a789dfd Merge pull request #3963 from akallabeth/qoe_ack
Added client RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU
2017-05-22 11:10:03 +02:00
Armin Novak
f414522b7a Added setting for QoeAck. 2017-05-18 14:07:09 +02:00
Armin Novak
b6e5ec5039 Added client RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU 2017-05-18 14:07:09 +02:00
Armin Novak
ed2c675a83 Fixed path length check. 2017-05-18 09:43:02 +02:00
Armin Novak
6b960a4319 Fix #3962: Remove trailing slashes from path. 2017-05-17 16:43:16 +02:00
Armin Novak
0a309fcbec Use unicode constants for WCHAR 2017-05-17 16:17:16 +02:00
Armin Novak
2a92cc9631 Use a preallocated logger instance for GFX
The static logger functions of WLog have quite a heavy performance
penalty. Use a pointer to an allocated logger to speed things up.
2017-05-15 17:24:47 +02:00
David Fort
17a4e95a5b Drop some annoying warning
Probably that some unused functions should be removed, but at least it makes
it compile with no warnings.
2017-05-12 13:54:16 +02:00
Adrian A
5beb181dec Fix handle leaks in encomsp and remdesk server
Ensure proper thread cleanup when these channel servers are stopped.
2017-05-11 13:21:47 -07:00
Adrian A
fd39002288 Remove library prefix override for rdpei-server
This library was missed in commit
059374457d, so it was the only one that
stilll had a lib prefix
2017-05-10 09:56:37 -07:00
Ilya Shipitsin
07c2345879 resolve an issue identified by cppcheck:
[channels/urbdrc/client/libusb/libusb_udevice.c:1666] -> [channels/urbdrc/client/libusb/libusb_udevice.c:1661]: (warning) Either the condition 'request' is redundant or there is possible null pointer dereference: request.
2017-05-06 00:05:59 +05:00
Martin Fleisz
8569102c3a Merge pull request #3932 from chipitsine/cppcheck
resolve issues identified by cppcheck
2017-05-02 16:10:34 +02:00
David Fort
40baadb471 Merge pull request #3911 from akallabeth/avc444_v2
Added AVC444v2 client support.
2017-05-02 16:02:21 +02:00
Ilya Shipitsin
c78a2f0333 resolve issues identified by cppcheck
[channels/drive/client/drive_file.c:125]: (error) Memory leak: path_slash
[server/Windows/wf_dxgi.c:195]: (error) Invalid number of character '(' when these macros are defined: 'WITH_DXGI_1_2'.
2017-05-01 16:40:02 +05:00
David Fort
677c4e2105 Merge pull request #3919 from akallabeth/rdpdr_hotplug_fix
Fixed hotplug mount locations.
2017-04-27 14:11:51 +02:00
David PHAM-VAN
fd52a9ff52 Bugfix: wrong test regarding the first GetPrinter. This first call will always return FALSE because the goal of this call is to know the size needed. 2017-04-25 11:50:28 -07:00
ilammy
843ab1c234 winpr: fix field names of FILEDESCRIPTOR struct
The file name field is actually called cFileName on Windows. Use this
name in WinPR's struct definition as well for compatibility.
2017-04-21 14:13:52 +03:00
Armin Novak
73e89bffcc Cleaned up includes. 2017-04-19 08:27:22 +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
b0d3cfda4d Added AVC444v2 client support. 2017-04-11 11:29:14 +02:00
Armin Novak
c0c4358cd0 Added function pointer casts. 2017-04-10 13:06:05 +02:00
Armin Novak
b0289e3ed8 Fixed cast warnings. 2017-04-10 10:39:01 +02:00
Armin Novak
9713b63c26 Fixed addin tables and casts. 2017-04-10 10:38:57 +02:00
ilammy
a1128872d3 channels/cliprdr: handle cliprdr 2 GB size limit
The file contents PDUs support 64-bit file sizes and offsets, but
MS-RDPECLIP explicitly says in 2.2.5.3 File Contents Request PDU that
file larger that 4 gigabytes are not supported by the server. It turns
out that the supported size is even lower than that. The server cannot
correctly handle files larger than 2 gigabytes (inclusive). When faced
with such files it correctly retireves the lower part, but fails to
accept any data past that boundary. After receiving a file range reply
the server repeats the file range request with the same offset, and
again, and again, and again, making no progress and blocking the file
transfer indefinitely. This is not the behavior we would like to have.

Microsoft support site acknowledges and documents the issue [1],
suggesting the users to use disk drive redirection instead to transfer
large files. (File transfers via cliprdr are considerably slower than
disk drive redirection so the suggestion makes very much sense.)

However, we would like to avoid the lockdown of the remote session if
the user does attempt to transfer such files so we add a size check.
Putting it into the conversion from FILEDESCRIPTOR to CLIPRDR_FILELIST
is not an ideal place (the clients may not use the common utilities),
but that's good enough currently.

[1]: https://support.microsoft.com/en-us/help/2258090
2017-04-09 03:15:49 +03:00
ilammy
f643a95820 channels/cliprdr: fix CLIPRDR_FILECONTENTS_RESPONSE
Do not try to 'helpfully' fixup the length of the data provided by the
client when FILECONTENTS_SIZE is present. This can lead to a crash if
the client wants to report an error in msgFlags, sets cbRequested to
zero, and does not provide any data in requestedData. For example,
XFreeRDP does this in xf_cliprdr_send_file_contents_failure() and
xf_cliprdr_clipboard_file_size_failure().
2017-04-09 03:15:49 +03:00
ilammy
ef4421fc77 channels/cliprdr: fix CLIPRDR_FILECONTENTS_REQUEST
clipDataId is an optional field of CLIPRDR_FILECONTENTS_REQUEST.
The client should not send it to the server without sending a prior
CLIPRDR_LOCK_CLIPDATA request. The reverse is true as well: the
server should not include these additional 4 bytes without locking
the file in question.

The value zero is a valid ID, it cannot be used as a sentinel value.
Introduce a separate flag to tell whether the clipDataId has been set
and can be relied upon.

Also fix formatting. These stupid line breaks have negative impact on
readability, and the lines do fit into the 100 column limit either way.
2017-04-09 03:15:49 +03:00
ilammy
a992743d99 channels/cliprdr: CLIPRDR_FILELIST utilities
The format is described in MS-RDPECLIP 2.2.5.2.3 Packed File List
(CLIPRDR_FILELIST). These functions handle conversion between the
on-the-wire data from cliprdr and arrays of FILEDESCRIPTOR structs.

FILETIME handling is a bit wacky, but that's what we currently have.
2017-04-09 03:15:48 +03:00
David Fort
9fd3974817 Merge pull request #3864 from DavBfr/rewrite-disk-redirection
Rewrite disk redirection using WinPR
2017-04-06 17:32:21 +02:00
David PHAM-VAN
b46aaeb973 Fix memory leaks, Mixed declarations 2017-03-27 11:15:22 -07:00
David PHAM-VAN
c60d663d1a Remove unused variable and check return codes 2017-03-27 10:55:55 -07:00
David PHAM-VAN
5a66fe841a Misc Fixes 2017-03-17 14:07:33 -07:00
David PHAM-VAN
d6f78df195 Verify ConvertFromUnicode return values 2017-03-16 16:27:01 -07:00
David PHAM-VAN
459d3a0473 Fix Windows build 2017-03-16 16:20:48 -07:00
David PHAM-VAN
9c596b70a6 Fix Android build 2017-03-14 10:48:10 -07:00
David PHAM-VAN
1296756be8 Bugfix: Wrong encoding method used for printer name. 2017-03-13 14:56:12 -07:00
David PHAM-VAN
9a76a43088 Add specific Xrdp workarounds
This reverts commit 36d95d73715bd081019538c55f74294aa9faffba.
2017-03-13 14:18:50 -07:00
David PHAM-VAN
c7924b554d Rewrite drive channel using WinPR functions 2017-03-13 14:18:46 -07:00
Martin Fleisz
5082dcb3d5 Merge pull request #3847 from akallabeth/ffmpeg_define_fix
Fixed #3782 and #2953: Using new libav defines.
2017-03-09 11:35:31 +01:00
Armin Novak
1bb26873d9 Fixed #3782 and #2953: Using new libav defines. 2017-03-08 09:00:13 +01:00
joy.you
fa86070c13 Update tsmf_ffmpeg.c 2017-03-08 10:25:36 +08:00
joy.you
4e41f57c77 frame_size fixed
if got_frame is not set, set frame_size to 0.
2017-03-06 10:27:27 +08: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
Ilya Shipitsin
4af2f71cf4 resolve compiler warning
channels/cliprdr/client/cliprdr_main.c:121:13: warning: ‘cliprdr_print_general_capability_flags’ defined but not used [-Wunused-function]

 static void cliprdr_print_general_capability_flags(UINT32 flags)

             ^
2017-02-22 20:39:32 +05:00
Martin Fleisz
a4436940ee Merge pull request #3785 from uplusplus/patch-4
tsmf dead lock fixed
2017-02-22 13:28:29 +01:00
Martin Fleisz
c806d0e1ed Merge pull request #3774 from akallabeth/smartcard_reader_groups
smartcard: implement ListReaderGroups
2017-02-20 14:33:10 +01:00
akallabeth
3115c1e28d Merge pull request #3783 from chipitsine/master
fix several defects found by cppcheck
2017-02-20 13:07:12 +01:00
joy.you
073e856d9a dead lock fixed
As ffmpeg decoder does not have stream->decoder->BufferLevel,So
stream->currentBufferLevel is always equal 1
2017-02-20 16:54:51 +08:00
Armin Novak
ff56f75893 Fixed format specifier and unused variables. 2017-02-17 14:25:59 +01:00
Martin Fleisz
c325ec5325 Merge pull request #3780 from akallabeth/win_compile_fix
Win compile fix
2017-02-17 13:22:51 +01:00
Ilya Shipitsin
44cfb0119f revolve possible null pointer dereference found by cppcheck
[channels/tsmf/client/gstreamer/tsmf_X11.c:472] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:474]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
2017-02-17 16:52:21 +05:00
Armin Novak
1ef55e7665 Fixed #3778: Printer driver name conversion. 2017-02-17 11:40:52 +01:00
akallabeth
ba99e35f72 Merge pull request #3733 from chipitsine/master
Resolve issues detected by cppcheck
2017-02-17 10:46:35 +01:00
Andreas Schultz
d2f98261f7 smartcard: implement ListReaderGroups
Conflicts:
	channels/smartcard/client/smartcard_operations.c
	channels/smartcard/client/smartcard_pack.c
	channels/smartcard/client/smartcard_pack.h

smartcard_operations: move handling of call argument into functions

The call argument was only use by static functions and was always equal
to operation->call. Remove the argument and use operation-call directly.

Also put the memory allocation and check into the same place.

Conflicts:
	channels/smartcard/client/smartcard_operations.c

Updated formatting and API
2017-02-16 16:59:03 +01:00
David Fort
be41769506 Add some useful debug info for the egfx channel 2017-02-16 14:49:08 +01:00
Armin Novak
6960ca209b Added GFX surface command profiler. 2017-02-15 15:42:14 +01:00
Armin Novak
359077e8d3 Closing dynamic channels on shutdown. 2017-02-15 15:42:14 +01:00