diff options
author | Daniel Stenberg <daniel@haxx.se> | 2013-01-15 22:35:48 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2013-01-15 22:35:48 +0100 |
commit | 533c31b78550603017f895180f301b760471c762 (patch) | |
tree | 780e5953b249ebabaf3cac2f1be3e47587000c53 /lib | |
parent | 7ab3ae0bf0666cc3766ddc5b9f4536d7e1f22565 (diff) |
FTP: reject illegal port numbers in EPSV 229 responses
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ftp.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -1854,6 +1854,10 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn, break; } } + if(num > 0xffff) { + failf(data, "Illegal port number in EPSV reply"); + return CURLE_FTP_WEIRD_PASV_REPLY; + } if(ptr) { newport = (unsigned short)(num & 0xffff); |