diff --git a/libfreerdp/core/nla.c b/libfreerdp/core/nla.c index c9c91dc85..cec177768 100644 --- a/libfreerdp/core/nla.c +++ b/libfreerdp/core/nla.c @@ -1691,15 +1691,19 @@ BOOL nla_send(rdpNla* nla) static int nla_decode_ts_request(rdpNla* nla, wStream* s) { size_t 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) {