]> granicus.if.org Git - php/commitdiff
Test case for bug #72771
authorVille Hukkamäki <vhu@iki.fi>
Fri, 19 Aug 2016 22:05:04 +0000 (22:05 +0000)
committerNikita Popov <nikic@php.net>
Tue, 30 Aug 2016 11:44:34 +0000 (13:44 +0200)
ext/ftp/tests/server.inc
ext/standard/tests/streams/bug72771.phpt [new file with mode: 0644]

index 5629c2e312291b3fb5953b96ba22488ba983ae5c..1a04cd179bedddafa918447c31abce9157b1013a 100644 (file)
@@ -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 (file)
index 0000000..b38ccbd
--- /dev/null
@@ -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==