Mike Gilbert [Sun, 24 Dec 2017 21:58:07 +0000 (16:58 -0500)]
cmake: rework logic to apply -msse2, -msse3, -mssse3 to specific files
If we apply -mssse3 to files that don't need it, gcc may automagically
generate instructions that will not run on certain CPUs. This breaks the
runtime feature detection code (IsProcessorFeaturePresent).
Fixes: https://github.com/FreeRDP/FreeRDP/issues/4308
David Fort [Fri, 29 Dec 2017 09:29:02 +0000 (10:29 +0100)]
Merge pull request #4327 from akallabeth/disconnect_fix
Exit client thread if freerdp_connect fails
David Fort [Thu, 28 Dec 2017 18:53:15 +0000 (19:53 +0100)]
Merge pull request #4329 from akallabeth/sw_gdi_fix
Sw gdi fix drawing problems
Armin Novak [Fri, 22 Dec 2017 12:43:37 +0000 (13:43 +0100)]
Fix #4299: gdi_CRgnToRect
The coordinates from RDP ROP commands do not (always) have
0,0 as the origin of the drawing operation.
Adjust the coordinates to our local coordinate system.
Armin Novak [Fri, 22 Dec 2017 10:09:23 +0000 (11:09 +0100)]
Exit client thread if freerdp_connect fails
freerdp_disconnect must only be called, if the connection
was established. Otherwise all resources are cleaned up twice
leading to double free and other issues.
Armin Novak [Fri, 22 Dec 2017 09:37:04 +0000 (10:37 +0100)]
Added ROP to primary order debug message.
Armin Novak [Fri, 22 Dec 2017 09:25:05 +0000 (10:25 +0100)]
Added ROP to string functions for log messages.
David Fort [Thu, 21 Dec 2017 10:25:39 +0000 (11:25 +0100)]
Merge pull request #4319 from akallabeth/fullscreen_legacy_fix
Fullscreen without _NET_WM_FULLSCREEN_MONITORS
Martin Fleisz [Thu, 21 Dec 2017 08:51:33 +0000 (09:51 +0100)]
Merge pull request #4321 from akallabeth/rdp_parser_fix
Fixed RDP file parser for unicode.
akallabeth [Wed, 20 Dec 2017 16:01:58 +0000 (17:01 +0100)]
Merge pull request #4303 from krisztian-kovacs-balabit/use-redirection-password
Use redirection password
Armin Novak [Wed, 20 Dec 2017 11:02:23 +0000 (12:02 +0100)]
Fullscreen without _NET_WM_FULLSCREEN_MONITORS
Some window managers do not support _NET_WM_FULLSCREEN_MONITORS.
In that case multimonitor fullscreen does not properly work, so
add a path resizing the window over all screens instead.
Based on @erbth pull request, adding proper X11 atom checks.
Martin Fleisz [Wed, 20 Dec 2017 13:17:20 +0000 (14:17 +0100)]
Merge pull request #4320 from ondrejholy/coverity-fixes
Coverity Scan fixes
Armin Novak [Wed, 20 Dec 2017 12:43:14 +0000 (13:43 +0100)]
Fixed RDP file parser for unicode.
There was a memory corruption hidden due to ignoring the
buffer size argument.
Martin Fleisz [Wed, 20 Dec 2017 12:43:22 +0000 (13:43 +0100)]
Merge pull request #4318 from hardening/display_improvement
Dynamic resolution improvements
Martin Fleisz [Wed, 20 Dec 2017 11:38:38 +0000 (12:38 +0100)]
Merge pull request #4239 from akallabeth/test_memleak_fixes
Test memleak fixes
David Fort [Tue, 19 Dec 2017 14:16:14 +0000 (15:16 +0100)]
disp: improve window resizing
To workaround a bug with 2012r2 servers, don't send any resize during renegociation
and don't resize at a too high rate (every 200ms is good enough).
David Fort [Tue, 19 Dec 2017 08:38:24 +0000 (09:38 +0100)]
Add an activated event and a Timer event
Added an event that is triggered when the activation sequence is finished.
We also define a timer event that is neat to have for regular operation.
Ondrej Holy [Tue, 19 Dec 2017 13:42:06 +0000 (14:42 +0100)]
crypto: Improve PER OID calculations
"(oid[0] << 4) & (oid[1] & 0x0F)" statement is always 0. It is not
problem currently because the only OID which is written by this
function should have 0 there. The function to read/write are pretty
limited anyway and can't work properly with all kind of OIDs. Maybe
it would be better to hardcode the OID there without decoding
and encoding. But those functions are already there so let's improve
them a bit according the spec and warn about limited set of
supported OIDs.
See:
https://msdn.microsoft.com/en-us/library/windows/desktop/
bb540809
akallabeth [Tue, 19 Dec 2017 12:49:02 +0000 (13:49 +0100)]
Merge pull request #4313 from hardening/dyn_res_update
disp: implement dynamic resolution for X11
Ondrej Holy [Tue, 19 Dec 2017 12:02:55 +0000 (13:02 +0100)]
core: Remove redundant stream position changes
Stream_Seek() is used, but consequently Stream_SetPosition() is used
for position obtained by Stream_GetPosition() immediatelly before
Stream_Seek(). Let's remove this stream position changes due to its
redundancy.
Ondrej Holy [Tue, 19 Dec 2017 11:21:34 +0000 (12:21 +0100)]
tsmf: Prevent string overflow and unterminated strings
Device variable can overflow, or be unterminated. Replace strcpy
by strncpy and be sure that the string is terminated (sizeof() - 1).
Ondrej Holy [Tue, 19 Dec 2017 09:21:03 +0000 (10:21 +0100)]
core: Fix array overrunning during FIPS keys generation
p is 20 and r is 1 in the last iteration of fips_expand_key_bits,
which means that buf[21] is read (of BYTE buf[21];). However,
the value is not needed, because it is consequently discarded by
"c & 0xfe" statement. Let's do not read buf[p + 1] when r is 1
to avoid this.
akallabeth [Mon, 18 Dec 2017 08:42:28 +0000 (09:42 +0100)]
Merge pull request #4315 from MrCsabaToth/patch-1
Docu copy-paste error fix when referring to the Android 64 bit config
Csaba Toth [Sat, 16 Dec 2017 19:37:32 +0000 (11:37 -0800)]
Documentation copy-paste error fix when referring to the Android 64 bit config
akallabeth [Thu, 14 Dec 2017 15:56:29 +0000 (16:56 +0100)]
Merge pull request #4312 from bmiklautz/smartcard-cleanup
Smartcard fixes and cleanup
Bernhard Miklautz [Thu, 14 Dec 2017 15:21:19 +0000 (16:21 +0100)]
fix client/smartcard: indentation and return value
Integrate feedback from pull request review.
Bernhard Miklautz [Thu, 14 Dec 2017 14:46:14 +0000 (15:46 +0100)]
fix smartcard: SCardStatus unicode handling
* fix StatusW_Call to rely and use SCardStatusW
* fix trace call in StatusW_Call - needs to be called after the sizes
are set
* unify SCardStatus functions for pcsc - let the internal function handle unicode directly
This fixes an issue with size calculations of SCardStatusW.
David Fort [Wed, 29 Nov 2017 09:26:04 +0000 (10:26 +0100)]
disp: implement dynamic resolution for X11
If the display channel is available we use it to allow the user to resize the
xfreerdp window. When the window is resized we announce a new monitor layout and
the server reacts by doing a reactivation sequence to the new size.
The minimum window size is limited to 300x300 as 2012 servers crash horribly
if we send them a smaller layout.
Martin Fleisz [Wed, 13 Dec 2017 16:24:41 +0000 (17:24 +0100)]
Merge pull request #4305 from hardening/xrandr_fix
Fix XRandr for old systems and MacOSX
Bernhard Miklautz [Wed, 13 Dec 2017 15:57:53 +0000 (16:57 +0100)]
fix channel/smartcard: leak in Connect[AW]
smartcard_Connect[AW] leaked the reader buffer in error case.
Bernhard Miklautz [Wed, 13 Dec 2017 14:50:33 +0000 (15:50 +0100)]
feat winpr/smartcard: add test for SCardStatus
Add an extensive test for SCardStatus. It's not enabled per default
as it requires a reader with card to be present.
Bernhard Miklautz [Wed, 13 Dec 2017 14:46:50 +0000 (15:46 +0100)]
fix channel/smartcard: SCardStatus
Add support for fmszReaderNamesIsNULL. Formating of the touched files
was also updated.
Bernhard Miklautz [Mon, 11 Dec 2017 15:25:46 +0000 (16:25 +0100)]
fix channel/smartcard: compiler warnings
* remove unused variables
* remove unused jump label
Bernhard Miklautz [Mon, 11 Dec 2017 14:49:03 +0000 (15:49 +0100)]
refactor winpr/smartcard/pcsc: reader/group naming
The PCSC SCard implementation in winpr tried to rename reader and group
names received from PCSC to something similar to what the windows smart
card service would return.
Because of the following reasons this mapping was removed:
* reader names are not standardized
* no mapping of reader name should be required at all
* the mapping added extra complexity
* the mapping didn't produce the same names as if the reader was
directly connected on windows (or redirected from a windows host)
In case there are situations where this is nevertheless required this
feature can simple be (re-)implemented a part of the smart card channel.
Also the formatting was fixed.
Bernhard Miklautz [Mon, 11 Dec 2017 14:15:02 +0000 (15:15 +0100)]
feat winpr: add WINPR_UNUSED macro
WINPR_UNUSED can be used to mark intentionally unused function parameters.
Bernhard Miklautz [Mon, 11 Dec 2017 13:31:19 +0000 (14:31 +0100)]
fix channel/smartcard: remove SCardAddReaderName
SCardAddReaderName isn't part of the SCard API.
Note: removing this also removes the possibility to redirect single
smartcard readers with /smartcard:READERNAME. However this features
wasn't implemented in a general way and will be re-added as part of
the smart card channel directly.
Bernhard Miklautz [Mon, 11 Dec 2017 13:00:09 +0000 (14:00 +0100)]
fix channel/smartcard: simplify channel variables
Path was not really used and name was duplicated. Use the device->Name
directly.
Bernhard Miklautz [Mon, 11 Dec 2017 09:33:28 +0000 (10:33 +0100)]
fix channel/smartcard: remove status mappings
The state tracking/modifications (presumably thought as optimization?!) in
PCSC_SCardGetStatusChange_Internal cause a lot of applications to behave
incorrectly and/or hang. Ideally no modifications of the states should
be necessary as PCSC implements the same API as passed over the channel.
Bernhard Miklautz [Mon, 4 Dec 2017 15:16:59 +0000 (16:16 +0100)]
fix channel/smartcard: GetStatusChange return code
In case SCardGetStatusChange returned an error the call didn't return
any data but STATUS_NO_MEMORY as the calloc failed. This caused problems
with multiple applications server side (hangs and incorrect behavior).
Now the case when no readers are returned is handed correctly and the
data is also filled and send if the call fails.
Bernhard Miklautz [Mon, 4 Dec 2017 14:22:07 +0000 (15:22 +0100)]
fix channel/smartcard: async request handling
The smart card channel tried to mimic mstsc's behavior on if an IRP was
processed synchronously or asynchronously. As the channel uses one thread per
context it could happen, especially with PCSC, that the main
channel thread was blocked waiting for an smart card operation to
complete. To prevent that behavior only call known safe functions in the
main thread (like CreateContext) and call the rest asynchronously.
For example the channel would block if a ListReaders is invoked on
the same context where a GetStatusChange (infinite timeout)
was already pending. Only when a status change happened the channel
would continue.
Note: Due to the one context per thread design it's important that
cancel isn't queued an alway run synchronously. Otherwise a specific
context might lock.
Bernhard Miklautz [Mon, 4 Dec 2017 11:31:10 +0000 (12:31 +0100)]
fix channel/smartcard: return value handling
Device control calls always returned SCARD_S_SUCCESS even if an error
occurred. This caused server side software (including the card manager)
to behave incorrectly.
Bernhard Miklautz [Mon, 4 Dec 2017 11:17:57 +0000 (12:17 +0100)]
fix channel/smartcard: error handling
According to MS-RDPESC the smart card channel must set the IoStatus to
an NTSTATUS in case a encoding or decoding error happens. The smart card
channel did this correctly but the output stream was modified
incorrectly causing the smart card remote manager to stop in error
cases.
Martin Fleisz [Wed, 13 Dec 2017 08:58:14 +0000 (09:58 +0100)]
Merge pull request #4276 from akallabeth/big_endian_more
Big endian fixes
Martin Fleisz [Wed, 13 Dec 2017 08:09:33 +0000 (09:09 +0100)]
Merge pull request #4301 from hardening/geometry
geometry: a skeleton for the MS-RDPEGT channel
Armin Novak [Tue, 12 Dec 2017 10:41:43 +0000 (11:41 +0100)]
Fixed remaining color renaming issues.
Armin Novak [Tue, 12 Dec 2017 09:47:17 +0000 (10:47 +0100)]
Cleanup and initialization checks.
Armin Novak [Wed, 15 Nov 2017 08:11:12 +0000 (09:11 +0100)]
Fix #4239: Various memory leaks
* Fixed all tests, now can be run with -DWITH_ADDRESS_SANITIZER=ON compiled.
* Enabled address sanitizer for nightly builds.
David Fort [Tue, 12 Dec 2017 09:40:14 +0000 (10:40 +0100)]
Merge pull request #4277 from akallabeth/mac_server
Mac fixes
Armin Novak [Tue, 12 Dec 2017 09:35:02 +0000 (10:35 +0100)]
Fixed uninitialized variable.
David Fort [Mon, 11 Dec 2017 09:25:21 +0000 (10:25 +0100)]
Fix users of Stream_GetPosition() that returns size_t
David Fort [Wed, 6 Dec 2017 12:51:45 +0000 (13:51 +0100)]
geometry: a skeleton for the MS-RDPEGT channel
The base for implementing the MS-RDPEGT client channel that allows to track window
geometry.
David Fort [Fri, 8 Dec 2017 09:45:50 +0000 (10:45 +0100)]
Fix XRandr for old systems and MacOSX
We need a recent enough version of XRandr to correctly detect monitor.
Also this patch adds some typo or style fixes.
KOVACS Krisztian [Wed, 6 Dec 2017 15:32:56 +0000 (16:32 +0100)]
core/nla: use RedirectionPassword if set in settings
Previously, the code prompted for the password even if a RedirectionPassword
was provided.
With this change the prompt is only shown if both settins->Password and
settings->RedirectionPassword is absent.
KOVACS Krisztian [Wed, 6 Dec 2017 15:30:57 +0000 (16:30 +0100)]
winpr/sspi: add possibility to set auth identity with Unicode password
To be able to avoid password conversion if the password is already unicode
this change adds the sspi_SetAuthIdentityWithUnicodePassword() function
that is identical to sspi_SetAuthIdentity() except that the password is
used without further conversions in the Unicode identity.
KOVACS Krisztian [Wed, 6 Dec 2017 13:58:34 +0000 (14:58 +0100)]
Revert "core/connection: use redirection password when reconnecting"
This reverts commit
70c65e70d181a95ee5933df1703f08ac9e489374.
Martin Fleisz [Tue, 5 Dec 2017 13:40:03 +0000 (14:40 +0100)]
Merge pull request #4297 from akallabeth/cmd_parser_hardening
Fix #4296: Hardened command line post filter.
Martin Fleisz [Tue, 5 Dec 2017 10:19:59 +0000 (11:19 +0100)]
Merge pull request #4294 from akallabeth/shadow_fix
Shadow server crash fixes
Martin Fleisz [Tue, 5 Dec 2017 09:56:14 +0000 (10:56 +0100)]
Merge pull request #4288 from hardening/disp_channel
Disp channel changes and improvements
Bernhard Miklautz [Sat, 2 Dec 2017 15:09:43 +0000 (16:09 +0100)]
Merge pull request #4298 from myfreeweb/libressl-fix-fips
Fix LibreSSL build
Greg V [Fri, 1 Dec 2017 15:34:48 +0000 (18:34 +0300)]
Fix LibreSSL build
LibreSSL does not support FIPS mode.
David Fort [Tue, 28 Nov 2017 14:32:15 +0000 (15:32 +0100)]
drdynvc: fix invalid check
There were a copy'n paste error in the check of a malloc.
David Fort [Fri, 24 Nov 2017 13:53:39 +0000 (14:53 +0100)]
display control channel: add a callback called when we receive capabilities
We need a signal to know when the channel is ready and it's safe to send the
monitor layouts.
Armin Novak [Thu, 30 Nov 2017 15:56:45 +0000 (16:56 +0100)]
Fix #4296: Hardened command line post filter.
akallabeth [Fri, 1 Dec 2017 10:24:50 +0000 (11:24 +0100)]
Merge pull request #4275 from ondrejholy/big-endian-fixes
Big endian fixes
David Fort [Wed, 29 Nov 2017 14:28:37 +0000 (15:28 +0100)]
Merge pull request #4292 from daixj-shterm/master
Fix #4291: xfreerdp segfault when connecting freerdp-shadow-cli
Armin Novak [Wed, 29 Nov 2017 13:17:27 +0000 (14:17 +0100)]
Reset errno in X11 monitor enumeration
XOpenDisplay may succeed but set errno,
reset at the end of the function.
Armin Novak [Wed, 29 Nov 2017 13:13:50 +0000 (14:13 +0100)]
Fixed /monitors argument checks.
daixj [Wed, 29 Nov 2017 10:12:40 +0000 (05:12 -0500)]
Fix #4291: xfreerdp segfault when connecting freerdp-shadow-cli
David Fort [Fri, 24 Nov 2017 13:06:35 +0000 (14:06 +0100)]
xfreerdp: when available use xrandr to get display infos
akallabeth [Tue, 28 Nov 2017 15:36:32 +0000 (16:36 +0100)]
Merge pull request #4287 from bmiklautz/dev2
2.0.0-dev2 - start rc2 development cycle
Bernhard Miklautz [Tue, 28 Nov 2017 14:33:03 +0000 (15:33 +0100)]
client/android: increase version
Bernhard Miklautz [Tue, 28 Nov 2017 14:29:17 +0000 (15:29 +0100)]
2.0.0-dev2 - start rc2 development cycle
akallabeth [Tue, 28 Nov 2017 14:26:30 +0000 (15:26 +0100)]
Merge pull request #4286 from bmiklautz/rc1
Version 2.0.0-rc1
Bernhard Miklautz [Tue, 28 Nov 2017 14:03:09 +0000 (15:03 +0100)]
Version 2.0.0-rc1
David Fort [Tue, 28 Nov 2017 09:48:53 +0000 (10:48 +0100)]
Merge pull request #4282 from akallabeth/force_ipv6
Fix #4281: Added option to prefer IPv6 over IPv4
Bernhard Miklautz [Tue, 28 Nov 2017 09:47:27 +0000 (10:47 +0100)]
Merge pull request #4284 from akallabeth/channel_count_fix_v2
Fixed channel count exceed checks
Armin Novak [Tue, 28 Nov 2017 08:40:04 +0000 (09:40 +0100)]
Fixed channel count exceed checks
The check aborted on CHANNEL_MAX_COUNT - 1 instead
of correctly at CHANNEL_MAX_COUNT
akallabeth [Tue, 28 Nov 2017 08:19:58 +0000 (09:19 +0100)]
Merge pull request #4283 from bmiklautz/kfreebsd
fix build: GNU/kFreeBSD
David Fort [Mon, 27 Nov 2017 21:46:23 +0000 (22:46 +0100)]
Merge pull request #4272 from akallabeth/static_channel_checks
Fix #3378: 31 static channels are supported.
Bernhard Miklautz [Mon, 23 Oct 2017 08:32:51 +0000 (10:32 +0200)]
fix/build: handle GNU/kFreeBSD like other BSDs
Based on a patch for Debian from
Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Mike Gabriel [Mon, 23 Oct 2017 08:31:55 +0000 (10:31 +0200)]
fix/build: GNU/kFreeBSD is not FreeBSD
Bernhard Miklautz [Mon, 27 Nov 2017 10:49:46 +0000 (11:49 +0100)]
Merge pull request #3991 from akallabeth/stream_string_helper
Stream convenience functions to read/write strings.
Bernhard Miklautz [Mon, 27 Nov 2017 10:46:54 +0000 (11:46 +0100)]
Merge pull request #4261 from akallabeth/doc_ssl_store
Fix #3890: Point to OpenSSL doc for private CA
Armin Novak [Mon, 27 Nov 2017 09:54:49 +0000 (10:54 +0100)]
Fix #4281: Added option to prefer IPv6 over IPv4
Bernhard Miklautz [Mon, 27 Nov 2017 09:57:26 +0000 (10:57 +0100)]
Merge pull request #4220 from akallabeth/version_from_file_or_tag
Extract build version from file or git tag.
Bernhard Miklautz [Mon, 27 Nov 2017 09:41:06 +0000 (10:41 +0100)]
Merge pull request #4273 from akallabeth/issue_template
Added issue template.
Bernhard Miklautz [Mon, 27 Nov 2017 09:40:44 +0000 (10:40 +0100)]
Merge pull request #4270 from akallabeth/mac_clipboard_fix
Fixed #1536: Clipboard data size.
Bernhard Miklautz [Mon, 27 Nov 2017 09:06:30 +0000 (10:06 +0100)]
Merge pull request #4280 from akallabeth/snd_parser_fix
Fix #4278: Fix nasty range check bug
Armin Novak [Mon, 27 Nov 2017 09:03:49 +0000 (10:03 +0100)]
Added mailing list address.
Armin Novak [Mon, 27 Nov 2017 08:06:31 +0000 (09:06 +0100)]
Added reminder to delete template before submit
Armin Novak [Thu, 23 Nov 2017 15:44:00 +0000 (16:44 +0100)]
Added pull request template.
Armin Novak [Thu, 23 Nov 2017 15:34:17 +0000 (16:34 +0100)]
Added issue template.
Armin Novak [Sun, 26 Nov 2017 13:59:37 +0000 (14:59 +0100)]
Fix #4278: Fix nasty range check bug
David Fort [Fri, 24 Nov 2017 14:51:46 +0000 (15:51 +0100)]
Merge pull request #4229 from akallabeth/from_stdin_args
Option to force password prompt before connection
Bernhard Miklautz [Fri, 24 Nov 2017 14:44:15 +0000 (15:44 +0100)]
Merge pull request #4268 from akallabeth/big_endian_fixes
Fix ZGfx decoder on big endian
Armin Novak [Fri, 24 Nov 2017 12:19:48 +0000 (13:19 +0100)]
Fixed #3810: Renamed color functions
Armin Novak [Fri, 24 Nov 2017 12:10:30 +0000 (13:10 +0100)]
Added missing channel defines.
Armin Novak [Fri, 24 Nov 2017 11:46:01 +0000 (12:46 +0100)]
Fixed mac server compilation.
Armin Novak [Thu, 23 Nov 2017 11:00:52 +0000 (12:00 +0100)]
Fixed big endian issues with bitmap read.
Armin Novak [Thu, 23 Nov 2017 09:47:56 +0000 (10:47 +0100)]
Fixed endianess issues with ncrush.