Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/neutrinolabs/NeutrinoRDP.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorspeidy <speidy@gmail.com>2014-09-20 08:17:10 +0400
committerspeidy <speidy@gmail.com>2014-09-20 08:17:10 +0400
commita8dbc272aba8fe55ddcc4623a4f8ac32092a9afd (patch)
treec52b45ccfb1aeb79f5b91bf50f0692f644e7565a
parentcf672dfe6430ff130d8df494df182e74f033f75c (diff)
libfreerdp-core: fix segmentation fault caused by wrong stream use
(after tsg code merge)
-rw-r--r--libfreerdp-core/tls.c6
-rw-r--r--libfreerdp-core/transport.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/libfreerdp-core/tls.c b/libfreerdp-core/tls.c
index 6e97392..e1530e3 100644
--- a/libfreerdp-core/tls.c
+++ b/libfreerdp-core/tls.c
@@ -146,6 +146,12 @@ int tls_read(rdpTls* tls, uint8* data, int length)
LLOGLN(10, ("tls_read: in length %d", length));
+ if (tls == NULL)
+ {
+ LLOGLN(0, ("tls_read: error, tls not inited"));
+ return -1;
+ }
+
if (length < 1)
{
return 0;
diff --git a/libfreerdp-core/transport.c b/libfreerdp-core/transport.c
index a19a044..95b1f29 100644
--- a/libfreerdp-core/transport.c
+++ b/libfreerdp-core/transport.c
@@ -278,10 +278,10 @@ int transport_read_layer(rdpTransport* transport, uint8* data, int bytes)
{
case TRANSPORT_LAYER_TSG:
case TRANSPORT_LAYER_TLS:
- status = tls_read(transport->tls_out, data + read, bytes - read);
+ status = tls_read(transport->tls_in, data + read, bytes - read);
break;
case TRANSPORT_LAYER_TCP:
- status = tcp_read(transport->tcp_out, data + read, bytes - read);
+ status = tcp_read(transport->tcp_in, data + read, bytes - read);
break;
//case TRANSPORT_LAYER_TSG:
//status = tsg_read(transport->tsg, data + read, bytes - read);