summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2016-08-30 13:44:59 +0200
committerNikita Popov <nikic@php.net>2016-08-30 13:44:59 +0200
commit2c12a5f0a87f1524bf7dae7ef0eca2878b7b9fdc (patch)
treeb5b7248b26d9fa2185756c5effc41312929e7248
parentbfd4277008d3bda95ff5b418c60d41d50488d33b (diff)
parentaf7828a20f085c6cd2b720b093ee08f299505257 (diff)
downloadphp-git-2c12a5f0a87f1524bf7dae7ef0eca2878b7b9fdc.tar.gz
Merge branch 'PHP-5.6' into PHP-7.0
-rw-r--r--ext/ftp/tests/server.inc9
-rw-r--r--ext/standard/tests/streams/bug72771.phpt23
2 files changed, 31 insertions, 1 deletions
diff --git a/ext/ftp/tests/server.inc b/ext/ftp/tests/server.inc
index 5629c2e312..1a04cd179b 100644
--- a/ext/ftp/tests/server.inc
+++ b/ext/ftp/tests/server.inc
@@ -139,7 +139,10 @@ if ($pid) {
$buf = fread($s, 2048);
}
- if (!preg_match('/^USER (\w+)\r\n$/', $buf, $m)) {
+ if ($buf == "AUTH TLS\r\n") {
+ fputs($s, "500 not supported.\r\n");
+ return ;
+ } else if (!preg_match('/^USER (\w+)\r\n$/', $buf, $m)) {
fputs($s, "500 Syntax error, command unrecognized.\r\n");
dump_and_exit($buf);
}
@@ -208,6 +211,10 @@ if ($pid) {
$ascii = true;
fputs($s, "200 OK\r\n");
+ } elseif ($buf === "AUTH SSL\r\n") {
+ $ascii = true;
+ fputs($s, "500 not supported\r\n");
+
} elseif ($buf === "TYPE I\r\n") {
$ascii = false;
fputs($s, "200 OK\r\n");
diff --git a/ext/standard/tests/streams/bug72771.phpt b/ext/standard/tests/streams/bug72771.phpt
new file mode 100644
index 0000000000..b38ccbdda8
--- /dev/null
+++ b/ext/standard/tests/streams/bug72771.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #72771. FTPS to FTP downgrade not allowed when server doesn't support AUTH TLS or AUTH SSL.
+--SKIPIF--
+<?php
+if (array_search('ftp',stream_get_wrappers()) === FALSE) die("skip ftp wrapper not available.");
+if (!function_exists('pcntl_fork')) die("skip pcntl_fork() not available.");
+if (!extension_loaded('openssl')) die ("skip openssl not available.");
+?>
+--FILE--
+<?php
+
+require __DIR__ . "/../../../ftp/tests/server.inc";
+
+$path="ftps://127.0.0.1:" . $port."/";
+
+$ds=opendir($path, $context);
+var_dump($ds);
+?>
+==DONE==
+--EXPECTF--
+Warning: opendir(ftps://127.0.0.1:%d/): failed to open dir: Server doesn't support FTPS. in %s on line %d
+bool(false)
+==DONE==