aboutsummaryrefslogtreecommitdiff
path: root/libssh/messages.c
diff options
context:
space:
mode:
Diffstat (limited to 'libssh/messages.c')
-rw-r--r--libssh/messages.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libssh/messages.c b/libssh/messages.c
index 0f0aa363..66653d04 100644
--- a/libssh/messages.c
+++ b/libssh/messages.c
@@ -34,7 +34,11 @@ MA 02111-1307, USA. */
#include <string.h>
static SSH_MESSAGE *message_new(SSH_SESSION *session){
- SSH_MESSAGE *msg=malloc(sizeof(SSH_MESSAGE));
+ SSH_MESSAGE *msg=session->ssh_message;
+ if(!msg){
+ msg=malloc(sizeof(SSH_MESSAGE));
+ session->ssh_message=msg;
+ }
memset(msg,0,sizeof (*msg));
msg->session=session;
return msg;
@@ -402,5 +406,4 @@ void ssh_message_free(SSH_MESSAGE *msg){
break;
}
memset(msg,0,sizeof(*msg));
- free(msg);
}