SEC_ENCRYPT check in rdp_client_connect_auto_detect
authorArmin Novak <armin.novak@thincast.com>
Mon, 15 May 2017 11:10:10 +0000 (13:10 +0200)
committerArmin Novak <armin.novak@thincast.com>
Mon, 15 May 2017 11:10:10 +0000 (13:10 +0200)
Fix by @wizwizaco for #3951

libfreerdp/core/connection.c

index 57896d2..b3e1ecc 100644 (file)
@@ -772,6 +772,15 @@ BOOL rdp_client_connect_auto_detect(rdpRdp* rdp, wStream* s)
                                if (!rdp_read_security_header(s, &securityFlags))
                                        return FALSE;
 
+                               if (securityFlags & SEC_ENCRYPT)
+                               {
+                                       if (!rdp_decrypt(rdp, s, length - 4, securityFlags))
+                                       {
+                                               WLog_ERR(TAG, "rdp_decrypt failed");
+                                               return FALSE;
+                                       }
+                               }
+
                                if (rdp_recv_message_channel_pdu(rdp, s, securityFlags) == 0)
                                        return TRUE;
                        }