libfreerdp-core: fix memory leaks.

This commit is contained in:
Vic Lee 2011-08-25 13:45:43 +08:00
parent 7b23ed6f97
commit 025e7f9c9b
4 changed files with 9 additions and 2 deletions

View File

@ -293,6 +293,8 @@ boolean rdp_read_extended_info_packet(STREAM* s, rdpSettings* settings)
stream_read_uint16(s, cbClientDir); /* cbClientDir */
if (stream_get_left(s) < cbClientDir)
return False;
if (settings->client_dir)
xfree(settings->client_dir);
settings->client_dir = freerdp_uniconv_in(settings->uniconv, stream_get_tail(s), cbClientDir);
stream_seek(s, cbClientDir);

View File

@ -354,7 +354,7 @@ void nego_send_negotiation_request(rdpNego* nego)
int length;
uint8 *bm, *em;
s = stream_new(64);
s = transport_send_stream_init(nego->transport, 256);
length = TPDU_CONNECTION_REQUEST_LENGTH;
stream_get_mark(s, bm);
stream_seek(s, length);
@ -488,7 +488,7 @@ void nego_send_negotiation_response(rdpNego* nego)
int length;
uint8 *bm, *em;
s = stream_new(64);
s = transport_send_stream_init(nego->transport, 256);
length = TPDU_CONNECTION_CONFIRM_LENGTH;
stream_get_mark(s, bm);
stream_seek(s, length);

View File

@ -596,6 +596,7 @@ void rdp_free(rdpRdp* rdp)
input_free(rdp->input);
update_free(rdp->update);
fastpath_free(rdp->fastpath);
nego_free(rdp->nego);
mcs_free(rdp->mcs);
vchan_free(rdp->vchan);
xfree(rdp);

View File

@ -251,6 +251,10 @@ void tls_free(rdpTls* tls)
{
if (tls != NULL)
{
if (tls->ssl)
SSL_free(tls->ssl);
if (tls->ctx)
SSL_CTX_free(tls->ctx);
xfree(tls);
}
}