Commit graph

49 commits

Author SHA1 Message Date
Niels Dossche
57442f8f35 Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix GH-10521: ftp_get/ftp_nb_get resumepos offset is maximum 10GB
2023-03-20 23:27:46 +01:00
Niels Dossche
301418284d Fix GH-10521: ftp_get/ftp_nb_get resumepos offset is maximum 10GB
The char arrays were too small for a long on 64-bit systems, which
resulted in cutting off the string at the end with a NUL byte. Use a
size of MAX_LENGTH_OF_LONG to fix this issue instead of a fixed size
of 11 chars.

Closes GH-10525.
2023-03-20 23:20:21 +01:00
Ilija Tovilo
4c2ee6fa21
Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Propagate success status of ftp_close() to userland
2023-03-03 15:26:45 +01:00
nielsdos
abc6fe8f2e
Propagate success status of ftp_close() to userland
The docs say that this function returns true on success, and false on
error. This function always returns true in the current implementation
because the success return value from ftp_close() is never propagated to
userland. This affects one test: since the test server exits after an
invalid login, the ftp close correctly fails (because the server has
gone away).
2023-03-03 15:26:11 +01:00
jcm
928624ed8a
QA - ftp_rawlist - check list return value
Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>

Closes GH-9012.
2022-07-15 17:42:44 +02:00
Christoph M. Becker
895185e5ea
Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #79100: Wrong FTP error messages
2021-05-03 15:25:17 +02:00
Christoph M. Becker
c2a06f5d9a
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #79100: Wrong FTP error messages
2021-05-03 15:24:17 +02:00
Christoph M. Becker
42c72ef463
Fix #79100: Wrong FTP error messages
First we need to properly clear the `inbuf`, what is an amendment to
commit d2881adcbc[1].

Then we need to report `php_pollfd_for_ms()` failures right away; just
setting `errno` does not really help, since at least in some cases it
would have been overwritten before we actually could check it.  We use
`php_socket_strerror()` to get a proper error message, and define
`ETIMEDOUT` to the proper value on Windows; otherwise we catch the
definition in errno.h, which is not compatible with WinSock.  The
proper solution for this issue would likely be to include something
like ext/sockets/windows_common.h.

Finally, we ensure that we only report warnings using `inbuf`, if it is
not empty.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=d2881adcbc9be60de7e7d45a3316b0e11b7eb1e8>.

Closes GH-6718.
2021-05-03 15:19:57 +02:00
Christoph M. Becker
c0ae3a7fb7
Fix #80901: Info leak in ftp extension
We ensure that inbuf is NUL terminated on `ftp_readline()` failure.

Closes GH-6894.
2021-04-26 15:07:08 +02:00
Christoph M. Becker
5d7219dce6
Merge branch 'PHP-8.0'
* PHP-8.0:
  Fix #80901: Info leak in ftp extension
2021-04-26 14:46:43 +02:00
Christoph M. Becker
33d49551d1
Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #80901: Info leak in ftp extension
2021-04-26 14:45:55 +02:00
Christoph M. Becker
09696eee9d
Fix #80901: Info leak in ftp extension
We ensure that inbuf is NUL terminated on `ftp_readline()` failure.

Closes GH-6894.
2021-04-26 14:23:04 +02:00
Nikita Popov
ac1ccce264 waitpid in ftp server tests
This is not relevant right now, but ensures consistent order if
the tests are repeated.
2020-10-23 16:56:23 +02:00
Nikita Popov
3859e74347 Fix pasv_port determination
Apparently the ftp server is also used by ext/standard/tests/streams,
and only that part actually uses pasv.
2020-10-23 11:46:54 +02:00
Nikita Popov
08eb917fd5 Use ephemeral port in ftp tests
And enable them to run in parallel.
2020-10-23 10:48:21 +02:00
Nikita Popov
22bf92564c Remove unused pasv_listen() function 2020-10-22 14:23:07 +02:00
Nikita Popov
f8d795820e Reindent phpt files 2020-02-03 22:52:20 +01:00
Nikita Popov
065255a0f8 Merge branch 'PHP-7.3' into PHP-7.4 2019-03-25 17:46:28 +01:00
Nikita Popov
e4d9d91462 Merge branch 'PHP-7.2' into PHP-7.3 2019-03-25 17:45:03 +01:00
Vlad Temian
ec2ecb7e12 Fix bug #77680: Correctly implement recursive mkdir on FTP stream
If the root directory was missing, an extra CWD without arguments was
made. Also, the MKD contained an empty string.

Now the CWD will use / and MKDs will be issued starting from the root
directory.
2019-03-25 17:43:46 +01:00
Ward Cappelle
f9d66caddf Expand FTP delete basic test with "unknown file" coverage
A port of the original https://github.com/phpcommunity/phptestfest-php-src/pull/148 pull
request, created earlier during #PHPTestFest (User Group: PHP-WVL & PHPGent).
Expands the existing FTP delete command test with coverage for deletion of
non-existing files (which returns a 550 status code).
2019-02-10 20:41:08 +01:00
Nikita Popov
6122f67492 Merge branch 'PHP-7.2' into PHP-7.3 2018-09-04 04:57:13 +02:00
Nikita Popov
fcf78dfb89 Merge branch 'PHP-7.1' into PHP-7.2 2018-09-04 04:55:15 +02:00
Ville Hukkamaki
742783c3ee Fixed bug #73457
Correctly report errors when opening FTP data connection.
2018-09-04 04:53:38 +02:00
Gabriel Caruso
5153413ed4
Test more functions of ftp 2018-02-19 08:27:37 +01:00
Gabriel Caruso
91b09c7aa6 Increase ext/ftp coverage 2018-02-06 16:28:42 +01:00
Michael Kliewe
ba0ef9139c convert spaces to tabs in ext/ftp/tests/server.inc 2017-10-28 13:02:23 +02:00
Michael Kliewe
7d5bf6e269 Add tests for ftp_rename 2017-10-28 13:02:23 +02:00
Andreas Treichel
29e4d4eee6 Add ftp_append to create a new file or append data to an existing file (RFC959) 2017-08-02 20:52:28 +02:00
Andreas Treichel
5b1300b6c9 ftp_mlsd(): Parse the MLSD response 2017-02-17 21:31:18 +01:00
Nikita Popov
267ab47366 Merge branch 'PHP-7.1' 2017-02-16 12:47:26 +01:00
Mitch Hagstrand
3b91ed112f Make the ftp and stream tests more reliable.
The tests can sometimes fail because it chooses a passive port for ftp that
is already in use. This makes the test attempt multiple times to find a free
port.
2017-02-16 12:46:55 +01:00
Andreas Treichel
0103d1e3bc
FTP: implement MLSD for structured listing of directories, decribed at https://tools.ietf.org/html/rfc3659 2017-01-29 07:28:22 +00:00
Mitch Hagstrand
47007455dc
Fix FTP tests for Travis CI.
This suppresses the errors from stream_socket_server() until
server.inc will not make anymore attempts.
2017-01-09 00:36:39 +00:00
Ville Hukkamäki
af7828a20f Test case for bug #72771 2016-08-30 13:44:34 +02:00
Ville Hukkamaki
65056e9d6c Fix #72764
Negotiate data channel encryption after NLST command.
This is to prevent issues with IIS and ProFTPD.
2016-08-05 22:56:54 +02:00
Ville Hukkamäki
cce457c68c Fix bug #72667
Open data stream after receiving PASV reply, before sending the
main request.

Included test cases for opendir() with ftp:// and ftps:// wrappers.
Test cases re-use ext/ftp/tests/server.inc

Conflicts:
	ext/standard/ftp_fopen_wrapper.c
2016-07-27 15:55:47 +02:00
Philip Hofstetter
96cc419924 Fix bug #65667: ftp_nb_continue produces segfault
the idea behind ftp_nb_get is for it to be followed by multiple calls
to ftp_nb_continue in order to download a file piece-by-piece.

As such, it's unwise to close the stream used to write the downloaded
data to when the file hasn't been completely downloaded within the first
call to ftp_nb_get.

This regression was added in a93a462dce
and this patch restores the behavior that was seen pre-patch.
2013-10-04 17:25:46 +02:00
Andreas Streichardt
a93a462dce First fixes for a 64bit compatible ftp extension 2013-08-04 19:31:30 -07:00
Zoe Slattery
c0c141d0cf server for ftp tests 2009-08-30 09:31:54 +00:00
Zoe Slattery
7156227045 New FTP test from Nathaniel McHugh 2008-12-17 12:35:26 +00:00
Zoe Slattery
9271f52838 FTP test from Nathaniel McHugh 2008-12-05 16:28:16 +00:00
Nuno Lopes
3d65d6d8d9 Fixed bug #37799 (ftp_ssl_connect() falls back to non-ssl connection) 2007-02-13 18:29:10 +00:00
Nuno Lopes
e65bdffab5 tests + BFN 2006-12-01 16:37:39 +00:00
Nuno Lopes
e8384cbcca more tests 2006-11-24 20:18:54 +00:00
Nuno Lopes
d64b17543c fix tests after Tony's commit and add a test for the bug he fixed 2006-11-24 15:47:45 +00:00
Nuno Lopes
94a810755f add tests for 2 old bugs 2006-11-23 20:47:38 +00:00
Nuno Lopes
ba8ba5a909 add two more tests (test bogus parameters and bogus server respsnes) 2006-11-23 17:34:34 +00:00
Nuno Lopes
bd519ae0d9 new tests. what a crazy idea... 2006-11-19 18:37:28 +00:00