mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-09 09:54:25 +09:00
Improve ssh_socket_free().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@381 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
@@ -41,6 +41,7 @@
|
|||||||
*/
|
*/
|
||||||
SSH_SESSION *ssh_new(void) {
|
SSH_SESSION *ssh_new(void) {
|
||||||
SSH_SESSION *session;
|
SSH_SESSION *session;
|
||||||
|
|
||||||
session = malloc(sizeof (SSH_SESSION));
|
session = malloc(sizeof (SSH_SESSION));
|
||||||
if (session == NULL) {
|
if (session == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -87,28 +88,23 @@ err:
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ssh_cleanup(SSH_SESSION *session){
|
void ssh_cleanup(SSH_SESSION *session) {
|
||||||
int i;
|
int i;
|
||||||
enter_function();
|
enter_function();
|
||||||
|
|
||||||
if(session->serverbanner)
|
if (session == NULL) {
|
||||||
free(session->serverbanner);
|
return;
|
||||||
if(session->clientbanner)
|
}
|
||||||
free(session->clientbanner);
|
|
||||||
if(session->in_buffer)
|
SAFE_FREE(session->serverbanner);
|
||||||
buffer_free(session->in_buffer);
|
SAFE_FREE(session->clientbanner);
|
||||||
if(session->out_buffer)
|
SAFE_FREE(session->banner);
|
||||||
buffer_free(session->out_buffer);
|
buffer_free(session->in_buffer);
|
||||||
if(session->banner)
|
buffer_free(session->out_buffer);
|
||||||
free(session->banner);
|
crypto_free(session->current_crypto);
|
||||||
if(session->options)
|
crypto_free(session->next_crypto);
|
||||||
ssh_options_free(session->options);
|
ssh_socket_free(session->socket);
|
||||||
if(session->current_crypto)
|
ssh_options_free(session->options);
|
||||||
crypto_free(session->current_crypto);
|
|
||||||
if(session->next_crypto)
|
|
||||||
crypto_free(session->next_crypto);
|
|
||||||
if(session->socket)
|
|
||||||
ssh_socket_free(session->socket);
|
|
||||||
// delete all channels
|
// delete all channels
|
||||||
while(session->channels)
|
while(session->channels)
|
||||||
channel_free(session->channels);
|
channel_free(session->channels);
|
||||||
|
|||||||
@@ -120,10 +120,13 @@ struct socket *ssh_socket_new(SSH_SESSION *session) {
|
|||||||
* \brief Deletes a socket object
|
* \brief Deletes a socket object
|
||||||
*/
|
*/
|
||||||
void ssh_socket_free(struct socket *s){
|
void ssh_socket_free(struct socket *s){
|
||||||
ssh_socket_close(s);
|
if (s == NULL) {
|
||||||
buffer_free(s->in_buffer);
|
return;
|
||||||
buffer_free(s->out_buffer);
|
}
|
||||||
free(s);
|
ssh_socket_close(s);
|
||||||
|
buffer_free(s->in_buffer);
|
||||||
|
buffer_free(s->out_buffer);
|
||||||
|
SAFE_FREE(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
|||||||
Reference in New Issue
Block a user