aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-08-22 21:21:01 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-08-22 21:21:01 +0000
commitd792937686dac6a0a5217a589d8a2ba3ec083f51 (patch)
tree7f226b7b2b8e5996bf9f8126642a2891fe2a0565
parentbac66ec26ba60e371afd811214f5462ff7402789 (diff)
Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP
code when doing pure ipv6 EPRT connections.
-rw-r--r--CHANGES4
-rw-r--r--RELEASE-NOTES4
-rw-r--r--lib/ftp.c6
3 files changed, 12 insertions, 2 deletions
diff --git a/CHANGES b/CHANGES
index 470039344..ceffd3609 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,10 @@
Changelog
+Daniel (22 August 2006)
+- Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP
+ code when doing pure ipv6 EPRT connections.
+
Daniel (19 August 2006)
- Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE
command on subsequent requests on a re-used connection unless it has to.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 104296537..7b74752db 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -16,6 +16,7 @@ This release includes the following changes:
This release includes the following bugfixes:
+ p (FTP) EPRT transfers with IPv6 didn't work properly
o (FTP) SINGLECWD mode and using files in the root dir
o (HTTP) Expect: header disabling work better
o (HTTP) "Expect: 100-continue" disable on second POST on re-used connection
@@ -32,6 +33,7 @@ New curl mirrors:
This release would not have looked like this without help, code, reports and
advice from friends like these:
- Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs
+ Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs,
+ Peter Sylvester
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/ftp.c b/lib/ftp.c
index 62c941e5d..bfa34bae8 100644
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -215,8 +215,12 @@ static CURLcode AllowServerConnect(struct connectdata *conn)
/* we have received data here */
{
curl_socket_t s = CURL_SOCKET_BAD;
- socklen_t size = (socklen_t) sizeof(struct sockaddr_in);
+#ifdef ENABLE_IPV6
+ struct Curl_sockaddr_storage add;
+#else
struct sockaddr_in add;
+#endif
+ socklen_t size = (socklen_t) sizeof(add);
if(0 == getsockname(sock, (struct sockaddr *) &add, &size))
s=accept(sock, (struct sockaddr *) &add, &size);