aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES3
-rw-r--r--lib/ftp.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index e5fec2df0..4ade70794 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,9 @@
Changelog
+Daniel Fandrich (10 Aug 2009)
+- Fixed a memory leak in the FTP code and an off-by-one heap buffer overflow.
+
Daniel Fandrich (9 Aug 2009)
- Fixed some memory leaks in the command-line tool that caused most of the
torture tests to fail.
diff --git a/lib/ftp.c b/lib/ftp.c
index 4ded990b6..765ac841c 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -926,9 +926,9 @@ static CURLcode ftp_state_use_port(struct connectdata *conn,
char *port_start = NULL;
char *port_sep = NULL;
- addr = malloc(addrlen);
- memset(addr, 0, addrlen);
-
+ addr = calloc(addrlen+1, 1);
+ if (!addr)
+ return CURLE_OUT_OF_MEMORY;
#ifdef ENABLE_IPV6
if(*string_ftpport == '[') {