Bernhard Miklautz [Mon, 12 Nov 2018 13:46:01 +0000 (14:46 +0100)]
new: version 2.0.0-rc4
ChangeLog and version updated
Bernhard Miklautz [Tue, 20 Nov 2018 10:20:43 +0000 (10:20 +0000)]
Merge pull request #5031 from akallabeth/cve_fixes_final
Cve fixes
Armin Novak [Mon, 22 Oct 2018 14:59:28 +0000 (16:59 +0200)]
Refactored ntlm_av_pairs API
Tightened checks, cleaned up code and improved redability.
Armin Novak [Mon, 22 Oct 2018 15:51:26 +0000 (17:51 +0200)]
Fixed CVE-2018-8784
Thanks to Eyal Itkin from Check Point Software Technologies.
Armin Novak [Mon, 22 Oct 2018 14:52:21 +0000 (16:52 +0200)]
Fixed CVE-2018-8788
Thanks to Eyal Itkin from Check Point Software Technologies.
Armin Novak [Mon, 22 Oct 2018 14:30:20 +0000 (16:30 +0200)]
Fixed CVE-2018-8787
Thanks to Eyal Itkin from Check Point Software Technologies.
Armin Novak [Mon, 22 Oct 2018 14:25:13 +0000 (16:25 +0200)]
Fixed CVE-2018-8786
Thanks to Eyal Itkin from Check Point Software Technologies.
Armin Novak [Mon, 22 Oct 2018 14:20:34 +0000 (16:20 +0200)]
Fixed CVE-2018-8785
Thanks to Eyal Itkin from Check Point Software Technologies.
Armin Novak [Mon, 22 Oct 2018 14:00:03 +0000 (16:00 +0200)]
Fixed CVE-2018-8789
Thanks to Eyal Itkin from Check Point Software Technologies.
Bernhard Miklautz [Tue, 20 Nov 2018 10:07:30 +0000 (10:07 +0000)]
Merge pull request #4953 from akallabeth/region_signed
signed gdi regions to adjust negative coordinates
Martin Fleisz [Tue, 20 Nov 2018 09:53:40 +0000 (10:53 +0100)]
Merge pull request #5030 from akallabeth/pointer_cache_optional
Fix #4864: Register pointer cache after PostConnect is called
Armin Novak [Tue, 20 Nov 2018 08:09:52 +0000 (09:09 +0100)]
Fix #4864: Register pointer cache after PostConnect is called
With #4950 client side pointer implementation was made optional.
This addresses an issue that each client had to call
pointer_cache_register_callbacks on its own.
Armin Novak [Tue, 20 Nov 2018 08:38:02 +0000 (09:38 +0100)]
Fixed invalid NULL check
akallabeth [Tue, 20 Nov 2018 08:00:39 +0000 (09:00 +0100)]
Merge pull request #5029 from mcsong/master
added korean translation for aFreeRDP
mcsong [Mon, 19 Nov 2018 22:38:48 +0000 (14:38 -0800)]
added korean translation
Armin Novak [Mon, 19 Nov 2018 16:24:24 +0000 (17:24 +0100)]
Clip coordinates for lineTo and polyLine
Armin Novak [Mon, 19 Nov 2018 16:24:06 +0000 (17:24 +0100)]
Fixed signed/unsigned warnings.
Armin Novak [Mon, 19 Nov 2018 12:58:53 +0000 (13:58 +0100)]
Fixed glyph cache bounds setting.
Armin Novak [Tue, 13 Nov 2018 16:06:09 +0000 (17:06 +0100)]
Fixed gdi_BitBlt coordinate clipping.
Armin Novak [Mon, 22 Oct 2018 12:12:22 +0000 (14:12 +0200)]
Fixed opaque rect bounding rectangle.
akallabeth [Fri, 19 Oct 2018 15:02:33 +0000 (17:02 +0200)]
signed gdi regions to adjust negative coordinates
Martin Fleisz [Mon, 19 Nov 2018 09:20:52 +0000 (10:20 +0100)]
Merge pull request #5021 from akallabeth/profiler_api_rework
Fixed profiler API
Bernhard Miklautz [Mon, 19 Nov 2018 09:15:14 +0000 (09:15 +0000)]
Merge pull request #4940 from akallabeth/check_window_order_support
Added checks for order type window support.
Bernhard Miklautz [Mon, 19 Nov 2018 08:57:53 +0000 (08:57 +0000)]
Merge pull request #5025 from DustPuppyNet/openssl_1_1_1
fix for connection with openssl 1.1.1
Christian Gall [Sun, 18 Nov 2018 14:09:37 +0000 (14:09 +0000)]
* remove obsolete SSLv23_client_method in tls_connect()
* set min TLS Version
Bernhard Miklautz [Sat, 17 Nov 2018 18:47:08 +0000 (18:47 +0000)]
Merge pull request #5023 from ileGITimo/master
call xf_SetWindowTitle before XMapWindow
ileGITimo [Sat, 17 Nov 2018 14:32:52 +0000 (06:32 -0800)]
call xf_SetWindowTitle before XMapWindow, so window manager can act on window name
Armin Novak [Thu, 15 Nov 2018 16:52:43 +0000 (17:52 +0100)]
Fixed profiler API
* Duplicate the name internally to avoid issues with stack
* Made API opaque and removed direct dereferencing of struct.
Bernhard Miklautz [Thu, 15 Nov 2018 16:46:57 +0000 (16:46 +0000)]
Merge pull request #5018 from hardening/windowpos
cmdline: add window-position argument to set initial window position
Bernhard Miklautz [Thu, 15 Nov 2018 15:54:56 +0000 (15:54 +0000)]
Merge pull request #4989 from akallabeth/dsp_encode_resample
Added resampling to freerdp_dsp_encode.
Bernhard Miklautz [Thu, 15 Nov 2018 15:25:25 +0000 (15:25 +0000)]
Merge pull request #4976 from hardening/rfx_flush
remotefx: fix rlgr last bits of encoder
Bernhard Miklautz [Thu, 15 Nov 2018 13:48:22 +0000 (13:48 +0000)]
Merge pull request #4964 from akallabeth/rdg_fixes
Rdg/RPC and gateway fixes
David Fort [Thu, 15 Nov 2018 13:40:03 +0000 (14:40 +0100)]
cmdline: add window-position argument to set initial window position
This is useful if you want the window to be at a given position. The patch also mutualizes
the parsing of <xpos>x<ypos> or <width>x<height> arguments.
Armin Novak [Fri, 19 Oct 2018 09:14:09 +0000 (11:14 +0200)]
Fixed order mask
Armin Novak [Thu, 18 Oct 2018 15:23:06 +0000 (17:23 +0200)]
Allow window orders with AllowUnanouncedOrdersFromServer
Armin Novak [Thu, 18 Oct 2018 08:55:48 +0000 (10:55 +0200)]
Added checks for order type window support.
Bernhard Miklautz [Thu, 15 Nov 2018 08:50:56 +0000 (08:50 +0000)]
Merge pull request #5012 from akallabeth/rail_app_icons
Rail app icons
akallabeth [Thu, 15 Nov 2018 07:43:54 +0000 (08:43 +0100)]
Merge pull request #5015 from chipitsine/cleanup
cleanup based on PVS analyzer findings
Ilya Shipitsin [Wed, 14 Nov 2018 20:54:39 +0000 (01:54 +0500)]
remove not needed check
PVS analyzer: A part of conditional expression is always true: DomainMatch.
Ilya Shipitsin [Wed, 14 Nov 2018 20:51:44 +0000 (01:51 +0500)]
remove not needed check
PVS analyzer: A part of conditional expression is always true: bWaitAll.
akallabeth [Wed, 14 Nov 2018 12:45:31 +0000 (13:45 +0100)]
Merge pull request #4979 from hardening/CAL
license: support CAL license
Martin Fleisz [Wed, 14 Nov 2018 12:35:42 +0000 (13:35 +0100)]
Merge pull request #5009 from akallabeth/rdp_version_update
Updated RDP_VERSION definitions.
akallabeth [Wed, 14 Nov 2018 12:29:03 +0000 (13:29 +0100)]
Merge pull request #5013 from bmiklautz/sspi_symbols
fix [winpr/sspi]: export symbols on all systems
Armin Novak [Tue, 13 Nov 2018 13:46:51 +0000 (14:46 +0100)]
Fixed source format for freerdp_dsp_encode in rdpsnd_server_send_wave_pdu
Armin Novak [Tue, 13 Nov 2018 13:04:43 +0000 (14:04 +0100)]
Add soxr library and include paths.
Armin Novak [Tue, 13 Nov 2018 11:29:19 +0000 (12:29 +0100)]
Added missing define guards.
Armin Novak [Tue, 13 Nov 2018 10:06:38 +0000 (11:06 +0100)]
Allow building without libsoxr support.
Armin Novak [Tue, 13 Nov 2018 10:03:09 +0000 (11:03 +0100)]
Marked custom ADPCM codecs experimental.
Armin Novak [Tue, 13 Nov 2018 10:00:39 +0000 (11:00 +0100)]
Added fallback for supported sample rates if original not supported.
Added format compatibility check between recording input and destination.
Armin Novak [Tue, 13 Nov 2018 09:59:41 +0000 (10:59 +0100)]
Fixed possible NULL pointer dereference
Armin Novak [Tue, 13 Nov 2018 09:59:30 +0000 (10:59 +0100)]
Added libsoxr based resampling.
Armin Novak [Tue, 13 Nov 2018 08:13:52 +0000 (09:13 +0100)]
Added CMake detection support for libsoxr
Armin Novak [Fri, 9 Nov 2018 09:15:14 +0000 (10:15 +0100)]
Refactored freerdp_dsp_resample, checks now done internally.
Armin Novak [Fri, 9 Nov 2018 09:05:11 +0000 (10:05 +0100)]
Fixed format issues with server sound channel (review by @llysz)
Armin Novak [Fri, 9 Nov 2018 08:08:06 +0000 (09:08 +0100)]
Fixed unused function warnings when FFMPEG backend is used.
Armin Novak [Wed, 7 Nov 2018 13:14:15 +0000 (14:14 +0100)]
Added resampling to freerdp_dsp_encode.
Bernhard Miklautz [Wed, 14 Nov 2018 11:57:13 +0000 (11:57 +0000)]
Merge pull request #4973 from Devolutions/fix_drive_redirection
Allow fixed drive redirection (Windows) and fix macos drive duplication.
Bernhard Miklautz [Wed, 14 Nov 2018 11:39:23 +0000 (11:39 +0000)]
Merge pull request #5001 from akallabeth/mac_clipboard_fix
Fixed #4995: Don't forget to send the NULL of the clipboard string.
Bernhard Miklautz [Wed, 14 Nov 2018 11:19:36 +0000 (12:19 +0100)]
fix [winpr/sspi]: export symbols on all systems
Armin Novak [Wed, 14 Nov 2018 10:29:44 +0000 (11:29 +0100)]
Better description and formatting for update_read_icon_info
Armin Novak [Wed, 14 Nov 2018 10:06:23 +0000 (11:06 +0100)]
Made all internal functions static.
Armin Novak [Wed, 14 Nov 2018 10:04:59 +0000 (11:04 +0100)]
Fixed color conversion, log level and buffer types
Armin Novak [Wed, 14 Nov 2018 10:03:59 +0000 (11:03 +0100)]
Fixed rail_string_to_unicode_string size calculation.
ilammy [Sat, 10 Nov 2018 12:43:36 +0000 (14:43 +0200)]
xfreerdp: set _NET_WM_ICON to RAIL app icon
Icons on X11 windows are configured using the _NET_WM_ICON property
described in Extended Window Manager Hints. Here we implement converison
from DIB bitmaps used by RAIL to the format expected by _NET_WM_ICON,
and actually set the icon for RAIL app windows.
Both DIB format and _NET_WM_ICON (or rather, Xlib) are weird. Let's
start with RAIL's format. That's the one used in BMP and ICO formats
on Windows. It has some strange properties but thankfully FreeRDP's
freerdp_image_copy() can handle most of them for us. (With an exception
of monochrome and 16-color formats that it does not support. Sorry, but
I'm too lazy to fix them. They are not seem to be used by any real
application either.) The one thing that it can't do is to apply the
alpha transparency bitmask so we have to do it manually. This instantly
reminds us that DIB format has HISTORY: it's vertically flipped and
each must be padded to 4 bytes. Both these quirks having reasonable
(for a certain definition of 'reason') explanations. Such is life.
(Also, 8-bit images require a color palette which we must fill in.)
So okay, now comes _NET_WM_ICON. It is more sane (or rather, easier to
deal with). The bitmap is represented with a tiny [width, height] header
followed by an array of pixels in ARGB format. There is no padding, no
weird color formats. But here's a catch: you can't simply take the
output of freerdp_image_copy() and cast to (unsigned char*) of colors.
We have to allocate an array of C's longs and copy the pixels there,
because that's what Xlib expects (and this is mentioned in the spec).
Simply casting an array of bytes causes crashes on 64-bit systems.
So don't try to cheat or "optimize" and read the docs, kids.
Note that XFlush() call after XChangeProperty(). It's there because it
seems to helps see the icon quicker with Unity on Ubuntu 14.04. I don't
know why. (And Unity does not support _NET_WM_ICON officially. But it
sorta kinda works sometimes.)
Oh, and while we're here, delete some old, unused, and commented out
code that was setting window icons in the past. It's not needed anymore.
ilammy [Sat, 10 Nov 2018 09:51:30 +0000 (11:51 +0200)]
xfreerdp: add RAIL icon cache
This commit adds a cache for RAIL application icons. It is (surpisingly)
used to cache icons for remote applications. This mechanism is described
in MS-RDPERP 3.1.1.2 Icon Cache Support and related items.
Note that some (actually, most) of the icons are not cached. These are
marked with CacheId == 0xFF. In order to keep the code clean we do not
introduce a special case and instead use a 'scratch' icon and simply
pretend to return an xfRailIcon from cache.
We're going to set icons via _NET_WM_ICON property which explains
why we use "long" values to store pixel data. The icon conversion
is not implemented in this commit, it's only stubs.
However, we do implement processing of window information orders that
contain new icons or cached references to previously sent icons. Note
that it is important to not fail (i.e., to not return FALSE) if we
cannot find a window for the icon by its ID. The server occasionally
likes to be slow or something and send icon updates for nonexistent
windows. This behavior is mandated by the spec, too:
MS-RDPERP 3.2.5.1.6 Processing Window Information Orders
Upon receipt of a Window Information Order for an icon or
cached icon, as specified in sections 2.2.1.3.1.2.2 and
2.2.1.3.1.2.3, the client SHOULD locate the local RAIL window
that corresponds to the WindowId reported in the Hdr field
and apply the icon updates to the RAIL window. If no such
window can be found, the client SHOULD ignore the order.
Indeed, we silently ignore such orders now.
ilammy [Sat, 10 Nov 2018 20:09:20 +0000 (22:09 +0200)]
libfreerdp-core: fix reading TS_ICON_INFO
The spec says that CbColorTable field is present when Bpp is 1, 4, 8.
Actually, bpp == 2 is not supported by TS_ICON_INFO according to the
spec (though, DIB definitely supports 16-color images).
MS-RDPERP 2.2.1.2.3 Icon Info (TS_ICON_INFO)
CbColorTable (2 bytes):
This field is ONLY present if the bits per pixel (Bpp)
value is 1, 4, or 8.
Omitting 8-bit value breaks 256-color icons which are incorrectly
read with color and alpha data mixed up.
Armin Novak [Wed, 14 Nov 2018 09:14:48 +0000 (10:14 +0100)]
Updated RDP_VERSION definitions.
akallabeth [Tue, 13 Nov 2018 13:39:39 +0000 (14:39 +0100)]
Merge pull request #5005 from bmiklautz/nightly_build
fix [rpm/freerdp-nightly]: build dependencies
Bernhard Miklautz [Tue, 13 Nov 2018 12:59:41 +0000 (13:59 +0100)]
fix [rpm/freerdp-nightly]: build dependencies
Depend on libswresample-devel not libavresample-dev.
This reverts the behavior introduced in
fbe95209e72265af07dd426e0def7e3a9082fb4e.
Armin Novak [Tue, 13 Nov 2018 11:22:09 +0000 (12:22 +0100)]
Fixed rdg bio cleanup.
When attaching the RDG BIO to the TLS BIO also transfer ownership.
Armin Novak [Tue, 13 Nov 2018 10:24:04 +0000 (11:24 +0100)]
Fixed direct rdg front bio access.
Armin Novak [Tue, 13 Nov 2018 08:30:47 +0000 (09:30 +0100)]
Fixed leaks in rdg_send_channel_create
Armin Novak [Mon, 12 Nov 2018 15:48:31 +0000 (16:48 +0100)]
Fixed broken server name packet size
Armin Novak [Mon, 12 Nov 2018 14:40:10 +0000 (15:40 +0100)]
Don't read content length in VIRTUAL_CONNECTION_STATE_OUT_CHANNEL_WAIT
Armin Novak [Mon, 12 Nov 2018 15:29:28 +0000 (16:29 +0100)]
Fixed ntlm_authenticate, split return from continue flag.
Armin Novak [Wed, 7 Nov 2018 10:25:09 +0000 (11:25 +0100)]
Fixed static INT_MAX checks, replaced with assert.
Armin Novak [Wed, 24 Oct 2018 14:49:25 +0000 (16:49 +0200)]
Fixed all warnings in rdg module
Fix all missing range checks and warnings.
Armin Novak [Wed, 24 Oct 2018 13:46:18 +0000 (15:46 +0200)]
Fixed extern declaration of rpc_bind p_uuid_t variables.
Armin Novak [Wed, 24 Oct 2018 13:42:44 +0000 (15:42 +0200)]
Made rdpRdp opaque
David Fort [Wed, 31 Oct 2018 09:27:31 +0000 (10:27 +0100)]
license: support CAL license
This patch simplifies the licensing code mutualizing encryption / decryption
routines. It also adds the support for client_info packet that allows to send a
previously saved CAL file.
Martin Fleisz [Mon, 12 Nov 2018 12:55:36 +0000 (13:55 +0100)]
Merge pull request #4997 from akallabeth/use_bio_free_all
Replaced BIO_free with BIO_free_all
Armin Novak [Mon, 12 Nov 2018 07:35:04 +0000 (08:35 +0100)]
Fixed #4995: Don't forget to send the NULL of the clipboard string.
Bernhard Miklautz [Fri, 9 Nov 2018 12:25:55 +0000 (12:25 +0000)]
Merge pull request #4960 from akallabeth/interleaved_fix
Fixed #4954: Check destination buffer bounds.
Armin Novak [Fri, 9 Nov 2018 11:18:51 +0000 (12:18 +0100)]
Make VS2010 happy, reworked UNROLL defines.
Armin Novak [Fri, 9 Nov 2018 10:51:20 +0000 (11:51 +0100)]
Unroll bBits loops as well.
Martin Fleisz [Fri, 9 Nov 2018 11:07:43 +0000 (12:07 +0100)]
Merge pull request #4968 from akallabeth/timezone_updates
Simplified timezone update handling:
Martin Fleisz [Fri, 9 Nov 2018 10:58:04 +0000 (11:58 +0100)]
Merge pull request #4961 from akallabeth/align_malloc_fix
Fixed #2039: Check for overflow in calculations.
Armin Novak [Fri, 9 Nov 2018 10:32:28 +0000 (11:32 +0100)]
Readded loop unrolling.
Armin Novak [Wed, 24 Oct 2018 08:59:54 +0000 (10:59 +0200)]
Fixed #2039: Check for overflow in calculations.
Armin Novak [Thu, 8 Nov 2018 16:41:56 +0000 (17:41 +0100)]
Fixed profiler naming in tests.
Armin Novak [Thu, 8 Nov 2018 16:21:28 +0000 (17:21 +0100)]
Fixed various issues with freerdp_bitmap_compress and interleaved_compress
Armin Novak [Thu, 8 Nov 2018 16:20:31 +0000 (17:20 +0100)]
Added a unit test for interleaved codec compression.
Martin Fleisz [Thu, 8 Nov 2018 14:33:40 +0000 (15:33 +0100)]
Merge pull request #4996 from bmiklautz/tls_security_level
new [crypto/tls]: add support to set tls security level
Armin Novak [Thu, 8 Nov 2018 11:09:49 +0000 (12:09 +0100)]
Replaced BIO_free with BIO_free_all
There is no point in using BIO_free with a custom recursion
to free up stacked BIOs if there is already BIO_free_all.
Using it consistently avoids memory leaks due to stacked BIOs
not being recursively freed.
Bernhard Miklautz [Thu, 8 Nov 2018 10:13:57 +0000 (11:13 +0100)]
fix [cmdline]: parameter parsing
use strtoul instead of strtol
Bernhard Miklautz [Thu, 8 Nov 2018 10:01:56 +0000 (11:01 +0100)]
new [crypto/tls]: add support to set tls security level
The newly introduced option /tls-seclevel can be used to set the tls
security level on systems with openssl >= 1.1.0 or libressl.
As default level 1 is used as higher levels might prohibit connections
to older systems.
Bernhard Miklautz [Thu, 8 Nov 2018 10:08:03 +0000 (10:08 +0000)]
Merge pull request #4994 from akallabeth/bio_uninit_fix
Fixed #4993: Allow uninitialized bio socket in transport_bio_simple_uninit
Armin Novak [Wed, 7 Nov 2018 16:01:28 +0000 (17:01 +0100)]
Fixed #4993: Allow uninitialized bio socket in transport_bio_simple_uninit
When the TLS connection is aborted early (certificate issues, ...)
the bio simple socket might not have been initialized.
Do not access the NULL pointer on cleanup.
akallabeth [Wed, 7 Nov 2018 15:11:02 +0000 (16:11 +0100)]
Merge pull request #4982 from bmiklautz/ctest_asan_fixes
Fix issues with multiple tests if address sanitation is on
Armin Novak [Wed, 24 Oct 2018 15:40:05 +0000 (17:40 +0200)]
Simplified timezone update handling:
* Fix #4965: Adjusted the timezone update script to initialize
structs properly.
* Updated the scripts to generate the files directly
* Added a small HOWTO
* Split zone information to separate files to allow automatic
update without further manual editing.
Create a timezone.c file that does conform to C rules.