mirror of
https://git.libssh.org/projects/libssh.git
synced 2026-02-12 03:00:26 +09:00
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:
@@ -370,24 +370,29 @@ static SFTP_MESSAGE *sftp_get_message(SFTP_PACKET *packet) {
|
|||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
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();
|
|
||||||
packet=sftp_packet_read(sftp);
|
sftp_enter_function();
|
||||||
if(!packet){
|
|
||||||
sftp_leave_function();
|
packet = sftp_packet_read(sftp);
|
||||||
return -1; /* something nasty happened reading the packet */
|
if (packet == NULL) {
|
||||||
}
|
|
||||||
message=sftp_get_message(packet);
|
|
||||||
sftp_packet_free(packet);
|
|
||||||
if(!message){
|
|
||||||
sftp_leave_function();
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
sftp_enqueue(sftp,message);
|
|
||||||
sftp_leave_function();
|
sftp_leave_function();
|
||||||
return 0;
|
return -1; /* something nasty happened reading the packet */
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = sftp_get_message(packet);
|
||||||
|
sftp_packet_free(packet);
|
||||||
|
if (message == NULL) {
|
||||||
|
sftp_leave_function();
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sftp_enqueue(sftp, msg);
|
||||||
|
|
||||||
|
sftp_leave_function();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sftp_packet_free(SFTP_PACKET *packet){
|
void sftp_packet_free(SFTP_PACKET *packet){
|
||||||
|
|||||||
Reference in New Issue
Block a user