From ace6eed6c0c5e3493c58106cc0e698b92b7835f6 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Wed, 1 Apr 2009 20:14:43 +0000 Subject: 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 --- libssh/sftpserver.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'libssh/sftpserver.c') diff --git a/libssh/sftpserver.c b/libssh/sftpserver.c index d60509a7..9176b55c 100644 --- a/libssh/sftpserver.c +++ b/libssh/sftpserver.c @@ -34,13 +34,21 @@ SFTP_CLIENT_MESSAGE *sftp_get_client_message(SFTP_SESSION *sftp){ - SFTP_PACKET *packet=sftp_packet_read(sftp); - SFTP_CLIENT_MESSAGE *msg=malloc(sizeof (SFTP_CLIENT_MESSAGE)); + SFTP_PACKET *packet; + SFTP_CLIENT_MESSAGE *msg; BUFFER *payload; STRING *tmp; + + msg = malloc(sizeof (SFTP_CLIENT_MESSAGE)); + if (msg == NULL) { + return NULL; + } memset(msg,0,sizeof(SFTP_CLIENT_MESSAGE)); - if(!packet) - return NULL; + + packet = sftp_packet_read(sftp); + if (packet == NULL) { + return NULL; + } payload=packet->payload; msg->type=packet->type; msg->sftp=sftp; @@ -228,9 +236,13 @@ STRING *sftp_handle_alloc(SFTP_SESSION *sftp, void *info){ int i; u32 val; STRING *ret; - if(!sftp->handles){ - sftp->handles=malloc(sizeof(void *) * SFTP_HANDLES); - memset(sftp->handles,0,sizeof(void *)*SFTP_HANDLES); + + if (sftp->handles == NULL) { + sftp->handles = malloc(sizeof(void *) * SFTP_HANDLES); + if (sftp->handles == NULL) { + return NULL; + } + memset(sftp->handles,0,sizeof(void *)*SFTP_HANDLES); } for(i=0; ihandles[i]) -- cgit v1.2.3