Improve ssh_message_free().
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@440 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
родитель
e9a7d98eac
Коммит
04ab5c1b82
@ -489,37 +489,31 @@ void ssh_message_free(SSH_MESSAGE *msg){
|
|||||||
if (msg == NULL) {
|
if (msg == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch(msg->type){
|
|
||||||
case SSH_AUTH_REQUEST:
|
switch(msg->type) {
|
||||||
if(msg->auth_request.username)
|
case SSH_AUTH_REQUEST:
|
||||||
free(msg->auth_request.username);
|
SAFE_FREE(msg->auth_request.username);
|
||||||
if(msg->auth_request.password){
|
if (msg->auth_request.password) {
|
||||||
memset(msg->auth_request.password,0,strlen(msg->auth_request.password));
|
memset(msg->auth_request.password, 0,
|
||||||
free(msg->auth_request.password);
|
strlen(msg->auth_request.password));
|
||||||
}
|
SAFE_FREE(msg->auth_request.password);
|
||||||
break;
|
}
|
||||||
case SSH_CHANNEL_REQUEST_OPEN:
|
break;
|
||||||
if(msg->channel_request_open.originator)
|
case SSH_CHANNEL_REQUEST_OPEN:
|
||||||
free(msg->channel_request_open.originator);
|
SAFE_FREE(msg->channel_request_open.originator);
|
||||||
if(msg->channel_request_open.destination)
|
SAFE_FREE(msg->channel_request_open.destination);
|
||||||
free(msg->channel_request_open.destination);
|
break;
|
||||||
break;
|
case SSH_CHANNEL_REQUEST:
|
||||||
case SSH_CHANNEL_REQUEST:
|
SAFE_FREE(msg->channel_request.TERM);
|
||||||
if(msg->channel_request.TERM)
|
SAFE_FREE(msg->channel_request.modes);
|
||||||
free(msg->channel_request.TERM);
|
SAFE_FREE(msg->channel_request.var_name);
|
||||||
if(msg->channel_request.modes)
|
SAFE_FREE(msg->channel_request.var_value);
|
||||||
free(msg->channel_request.modes);
|
SAFE_FREE(msg->channel_request.command);
|
||||||
if(msg->channel_request.var_name)
|
SAFE_FREE(msg->channel_request.subsystem);
|
||||||
free(msg->channel_request.var_name);
|
break;
|
||||||
if(msg->channel_request.var_value)
|
}
|
||||||
free(msg->channel_request.var_value);
|
memset(msg, 0, sizeof(*msg));
|
||||||
if(msg->channel_request.command)
|
SAFE_FREE(msg);
|
||||||
free(msg->channel_request.command);
|
|
||||||
if(msg->channel_request.subsystem)
|
|
||||||
free(msg->channel_request.subsystem);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
memset(msg,0,sizeof(*msg));
|
|
||||||
}
|
}
|
||||||
/** @}
|
/** @}
|
||||||
*/
|
*/
|
||||||
|
@ -128,7 +128,6 @@ void ssh_cleanup(SSH_SESSION *session) {
|
|||||||
private_key_free(session->dsa_key);
|
private_key_free(session->dsa_key);
|
||||||
private_key_free(session->rsa_key);
|
private_key_free(session->rsa_key);
|
||||||
ssh_message_free(session->ssh_message);
|
ssh_message_free(session->ssh_message);
|
||||||
SAFE_FREE(session->ssh_message);
|
|
||||||
ssh_options_free(session->options);
|
ssh_options_free(session->options);
|
||||||
|
|
||||||
/* burn connection, it could hang sensitive datas */
|
/* burn connection, it could hang sensitive datas */
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user