diff options
author | speidy <speidy@gmail.com> | 2014-09-20 08:17:10 +0400 |
---|---|---|
committer | speidy <speidy@gmail.com> | 2014-09-20 08:17:10 +0400 |
commit | a8dbc272aba8fe55ddcc4623a4f8ac32092a9afd (patch) | |
tree | c52b45ccfb1aeb79f5b91bf50f0692f644e7565a | |
parent | cf672dfe6430ff130d8df494df182e74f033f75c (diff) |
libfreerdp-core: fix segmentation fault caused by wrong stream use
(after tsg code merge)
-rw-r--r-- | libfreerdp-core/tls.c | 6 | ||||
-rw-r--r-- | libfreerdp-core/transport.c | 4 |
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); |