diff options
| author | qiuyiuestc <[email protected]> | 2009-12-20 01:56:26 +0000 |
|---|---|---|
| committer | qiuyiuestc <[email protected]> | 2009-12-20 01:56:26 +0000 |
| commit | 1018dd336a5cd7e24ded3e94ef352a5aa83acc8d (patch) | |
| tree | a0eb397551721af6d513910b70695d129dcdc548 /net/apps | |
| parent | 31d281e979a3ce327db98ac48e730cab573b92eb (diff) | |
Change system clock from OSC to PLL for lm3s platform & fix ftp memory free problem
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@214 bbd45198-f89e-11dd-88c7-29a3b14d5316
Diffstat (limited to 'net/apps')
| -rw-r--r-- | net/apps/ftpd.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/net/apps/ftpd.c b/net/apps/ftpd.c index e879b9da03..180b611382 100644 --- a/net/apps/ftpd.c +++ b/net/apps/ftpd.c @@ -362,6 +362,7 @@ int ftp_process_request(struct ftp_session* session, char *buf) // incorrect login rt_sprintf(sbuf, "530 Login incorrect. Bye.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return -1; } return 0; @@ -375,12 +376,14 @@ int ftp_process_request(struct ftp_session* session, char *buf) // password correct rt_sprintf(sbuf, "230 User logged in\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return 0; } // incorrect password rt_sprintf(sbuf, "530 Login or Password incorrect. Bye!\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return -1; } else if(str_begin_with(buf, "LIST")==0 ) @@ -488,6 +491,7 @@ int ftp_process_request(struct ftp_session* session, char *buf) err1: closesocket(session->pasv_sockfd); session->pasv_active = 0; + rt_free(sbuf); return 0; } } @@ -504,12 +508,14 @@ err1: rt_sprintf(sbuf, "550 \"%s\" : not a regular file\r\n", filename); send(session->sockfd, sbuf, strlen(sbuf), 0); session->offset=0; + rt_free(sbuf); return 0; } fd = open(filename, O_RDONLY, 0); if (fd < 0) { + rt_free(sbuf); return 0; } @@ -538,6 +544,7 @@ err1: { rt_sprintf(sbuf, "550 Permission denied.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return 0; } @@ -548,6 +555,7 @@ err1: { rt_sprintf(sbuf, "550 Cannot open \"%s\" for writing.\r\n", filename); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return 0; } rt_sprintf(sbuf, "150 Opening binary mode data connection for \"%s\".\r\n", filename); @@ -573,6 +581,7 @@ err1: { close(fd); closesocket(session->pasv_sockfd); + rt_free(sbuf); return -1; } } @@ -643,6 +652,7 @@ err1: send(session->sockfd, sbuf, strlen(sbuf), 0); closesocket(session->pasv_sockfd); session->pasv_active = 0; + rt_free(sbuf); return 0; } pasvremote.sin_addr.s_addr=inet_addr(tmpip); @@ -657,6 +667,7 @@ err1: rt_sprintf(sbuf, "425 Can't open data connection.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); closesocket(session->pasv_sockfd); + rt_free(sbuf); return 0; } } @@ -681,6 +692,7 @@ err1: { rt_sprintf(sbuf, "550 Permission denied.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return 0; } @@ -703,6 +715,7 @@ err1: { rt_sprintf(sbuf, "550 Permission denied.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return 0; } @@ -722,6 +735,7 @@ err1: { rt_sprintf(sbuf, "550 Permission denied.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return 0; } build_full_path(session, parameter_ptr, filename, 256); @@ -737,10 +751,12 @@ err1: send(session->sockfd, sbuf, strlen(sbuf), 0); } } + else if(str_begin_with(buf, "QUIT")==0) { rt_sprintf(sbuf, "221 Bye!\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); + rt_free(sbuf); return -1; } else @@ -748,6 +764,7 @@ err1: rt_sprintf(sbuf, "502 Not Implemented.\r\n"); send(session->sockfd, sbuf, strlen(sbuf), 0); } + rt_free(sbuf); return 0; } |
