The ssh_message object needs to be freed after processing in channel_accept().

Signed-off-by: Vic Lee <llyzs@163.com>
Signed-off-by: Andreas Schneider <mail@cynapses.org>
This commit is contained in:
Vic Lee
2010-02-01 23:26:10 +08:00
committed by Andreas Schneider
parent b3589fbf6c
commit 474d63f24e

View File

@@ -1359,6 +1359,7 @@ static ssh_channel channel_accept(ssh_session session, int channeltype,
}; };
#endif #endif
ssh_message msg = NULL; ssh_message msg = NULL;
ssh_channel channel = NULL;
struct ssh_iterator *iterator; struct ssh_iterator *iterator;
int t; int t;
@@ -1373,7 +1374,9 @@ static ssh_channel channel_accept(ssh_session session, int channeltype,
if (ssh_message_type(msg) == SSH_REQUEST_CHANNEL_OPEN && if (ssh_message_type(msg) == SSH_REQUEST_CHANNEL_OPEN &&
ssh_message_subtype(msg) == channeltype) { ssh_message_subtype(msg) == channeltype) {
ssh_list_remove(session->ssh_message_list, iterator); ssh_list_remove(session->ssh_message_list, iterator);
return ssh_message_channel_request_open_reply_accept(msg); channel = ssh_message_channel_request_open_reply_accept(msg);
ssh_message_free(msg);
return channel;
} }
iterator = iterator->next; iterator = iterator->next;
} }