git » freerdp.git » commit 53b26b0

upgpkg: 1:2.0.0_rc1-2

author Sergej Pupykin
2018-03-16 09:43:18 UTC
committer Sergej Pupykin
2018-03-16 09:43:18 UTC
parent 33eb22b5b3e2979c942c0e350344f3539511858f

upgpkg: 1:2.0.0_rc1-2

PKGBUILD +10 -3
fix_nla-8cd156a-backport.patch +48 -0

diff --git a/PKGBUILD b/PKGBUILD
index 9b9e565..dc5a4ba 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,7 +7,7 @@ pkgver=2.0.0_rc1
 #_commit=6001cb710dc67eb8811362b7bf383754257a902b
 _pkgver=${pkgver/_/-}
 _pkgver=${_pkgver/+/-}
-pkgrel=1
+pkgrel=2
 pkgdesc="Free RDP client"
 arch=('x86_64')
 url="http://freerdp.sourceforge.net"
@@ -20,8 +20,15 @@ makedepends=('krb5' 'cmake' 'damageproto' 'fixesproto' 'renderproto'
 provides=('libwinpr-tools2.so' 'libfreerdp-client2.so' 'libfreerdp2.so'
           'libwinpr2.so')
 #source=("FreeRDP-${_pkgver}::git://github.com/FreeRDP/FreeRDP.git#commit=${_commit}")
-source=($pkgname-$pkgver.tar.gz::https://github.com/FreeRDP/FreeRDP/archive/${pkgver/_/-}.tar.gz)
-sha256sums=('a2c1c83072489d56da78bbe76c29729022f5c35a3ec3a1ce26cea8823de043c2')
+source=($pkgname-$pkgver.tar.gz::https://github.com/FreeRDP/FreeRDP/archive/${pkgver/_/-}.tar.gz
+	fix_nla-8cd156a-backport.patch)
+sha256sums=('a2c1c83072489d56da78bbe76c29729022f5c35a3ec3a1ce26cea8823de043c2'
+            '2d449e0c1adee1ef131501e1613fc4c59fd122ca866d09f52eeff61236de81e4')
+
+prepare() {
+ cd "$srcdir"/FreeRDP-${_pkgver}
+ patch -Np1 -i "${srcdir}/fix_nla-8cd156a-backport.patch"
+}
 
 build() {
   cd "$srcdir"/FreeRDP-${_pkgver}
diff --git a/fix_nla-8cd156a-backport.patch b/fix_nla-8cd156a-backport.patch
new file mode 100644
index 0000000..9590fc5
--- /dev/null
+++ b/fix_nla-8cd156a-backport.patch
@@ -0,0 +1,48 @@
+From: Bernhard Miklautz <bernhard.miklautz@thincast.com>
+Date: Wed, 14 Mar 2018 13:39:23 +0100
+Subject: [PATCH] fix nla: don't use server version
+
+FreeRDP currently only supports CredSSP protocol version 3. However the
+current implementation always sent back the version received by the
+server indicating that this version was supported.
+With recent windows updates applied the protocol changed and this approach
+doesn't work anymore (see
+https://msdn.microsoft.com/en-us/library/mt752485.aspx for protocol changes).
+
+With this fix FreeRDP always sends version 3 as supported version.
+
+Credit goes to @mfleisz.
+
+Fixes #4449
+
+(patch above adjusted to apply on top of FreeRDP-2.0.0-rc1)
+---
+ libfreerdp/core/nla.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/libfreerdp/core/nla.c b/trunk/src/FreeRDP-2.0.0-rc1/libfreerdp/core/nla.c
+index 47e0870..4bfcf7e 100644
+--- a/libfreerdp/core/nla.c
++++ b/libfreerdp/core/nla.c
+@@ -1663,14 +1663,17 @@ BOOL nla_send(rdpNla* nla)
+ static int nla_decode_ts_request(rdpNla* nla, wStream* s)
+ {
+ 	int length;
++	UINT32 version = 0;
+ 
+ 	/* TSRequest */
+ 	if (!ber_read_sequence_tag(s, &length) ||
+ 	    !ber_read_contextual_tag(s, 0, &length, TRUE) ||
+-	    !ber_read_integer(s, &nla->version))
++	    !ber_read_integer(s, &version))
+ 	{
+ 		return -1;
+ 	}
++	if (version < nla->version)
++		nla->version = version;
+ 
+ 	/* [1] negoTokens (NegoData) */
+ 	if (ber_read_contextual_tag(s, 1, &length, TRUE) != FALSE)
+-- 
+2.16.2
+