1
1

Add memory error checking for sftpserver functions.

git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@327 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
Andreas Schneider 2009-04-01 20:14:43 +00:00
родитель cde3151634
Коммит ace6eed6c0

Просмотреть файл

@ -34,13 +34,21 @@
SFTP_CLIENT_MESSAGE *sftp_get_client_message(SFTP_SESSION *sftp){ SFTP_CLIENT_MESSAGE *sftp_get_client_message(SFTP_SESSION *sftp){
SFTP_PACKET *packet=sftp_packet_read(sftp); SFTP_PACKET *packet;
SFTP_CLIENT_MESSAGE *msg=malloc(sizeof (SFTP_CLIENT_MESSAGE)); SFTP_CLIENT_MESSAGE *msg;
BUFFER *payload; BUFFER *payload;
STRING *tmp; STRING *tmp;
msg = malloc(sizeof (SFTP_CLIENT_MESSAGE));
if (msg == NULL) {
return NULL;
}
memset(msg,0,sizeof(SFTP_CLIENT_MESSAGE)); memset(msg,0,sizeof(SFTP_CLIENT_MESSAGE));
if(!packet)
return NULL; packet = sftp_packet_read(sftp);
if (packet == NULL) {
return NULL;
}
payload=packet->payload; payload=packet->payload;
msg->type=packet->type; msg->type=packet->type;
msg->sftp=sftp; msg->sftp=sftp;
@ -228,9 +236,13 @@ STRING *sftp_handle_alloc(SFTP_SESSION *sftp, void *info){
int i; int i;
u32 val; u32 val;
STRING *ret; STRING *ret;
if(!sftp->handles){
sftp->handles=malloc(sizeof(void *) * SFTP_HANDLES); if (sftp->handles == NULL) {
memset(sftp->handles,0,sizeof(void *)*SFTP_HANDLES); sftp->handles = malloc(sizeof(void *) * SFTP_HANDLES);
if (sftp->handles == NULL) {
return NULL;
}
memset(sftp->handles,0,sizeof(void *)*SFTP_HANDLES);
} }
for(i=0; i<SFTP_HANDLES;++i) for(i=0; i<SFTP_HANDLES;++i)
if(!sftp->handles[i]) if(!sftp->handles[i])