diff --git a/community/freerdp/PKGBUILD b/community/freerdp/PKGBUILD index aed8a4d50..eeb4b30b1 100644 --- a/community/freerdp/PKGBUILD +++ b/community/freerdp/PKGBUILD @@ -11,7 +11,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" @@ -24,8 +24,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/community/freerdp/fix_nla-8cd156a-backport.patch b/community/freerdp/fix_nla-8cd156a-backport.patch new file mode 100644 index 000000000..9590fc53d --- /dev/null +++ b/community/freerdp/fix_nla-8cd156a-backport.patch @@ -0,0 +1,48 @@ +From: Bernhard Miklautz +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 +