Add more error checks to sftp_read_and_dispatch().

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@577 7dcaeef0-15fb-0310-b436-a5af3365683c
This commit is contained in:
Andreas Schneider
2009-04-22 15:21:36 +00:00
parent e99966772e
commit 57a5c50a54

View File

@@ -371,21 +371,26 @@ static SFTP_MESSAGE *sftp_get_message(SFTP_PACKET *packet) {
} }
static int sftp_read_and_dispatch(SFTP_SESSION *sftp) { static int sftp_read_and_dispatch(SFTP_SESSION *sftp) {
SFTP_PACKET *packet; SFTP_PACKET *packet = NULL;
SFTP_MESSAGE *message=NULL; SFTP_MESSAGE *msg = NULL;
sftp_enter_function(); sftp_enter_function();
packet = sftp_packet_read(sftp); packet = sftp_packet_read(sftp);
if(!packet){ if (packet == NULL) {
sftp_leave_function(); sftp_leave_function();
return -1; /* something nasty happened reading the packet */ return -1; /* something nasty happened reading the packet */
} }
message=sftp_get_message(packet);
msg = sftp_get_message(packet);
sftp_packet_free(packet); sftp_packet_free(packet);
if(!message){ if (message == NULL) {
sftp_leave_function(); sftp_leave_function();
return -1; return -1;
} }
sftp_enqueue(sftp,message);
sftp_enqueue(sftp, msg);
sftp_leave_function(); sftp_leave_function();
return 0; return 0;
} }