summaryrefslogtreecommitdiff
path: root/sapi
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-11-28 12:42:40 +0100
committerAnatol Belski <ab@php.net>2017-11-28 12:42:40 +0100
commit79940993ded3328459aae3797f96973dc4f13a71 (patch)
tree939168af1cee548a59f24178984785ae007c5be5 /sapi
parentc219991c77e4c68f7d62963e18a1da778de0bbe0 (diff)
parent578049fdb6a69c7cd46ff62838384d1d9b1c88c4 (diff)
downloadphp-git-79940993ded3328459aae3797f96973dc4f13a71.tar.gz
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: Fixed bug #73830 Directory does not exist.
Diffstat (limited to 'sapi')
-rw-r--r--sapi/cli/php_cli_server.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c
index 1097b4769c..9a22c82037 100644
--- a/sapi/cli/php_cli_server.c
+++ b/sapi/cli/php_cli_server.c
@@ -2519,6 +2519,10 @@ int do_cli_server(int argc, char **argv) /* {{{ */
const char *server_bind_address = NULL;
extern const opt_struct OPTIONS[];
const char *document_root = NULL;
+#ifdef PHP_WIN32
+ char document_root_tmp[MAXPATHLEN];
+ size_t k;
+#endif
const char *router = NULL;
char document_root_buf[MAXPATHLEN];
@@ -2528,7 +2532,23 @@ int do_cli_server(int argc, char **argv) /* {{{ */
server_bind_address = php_optarg;
break;
case 't':
+#ifndef PHP_WIN32
document_root = php_optarg;
+#else
+ k = strlen(php_optarg);
+ if (k + 1 > MAXPATHLEN) {
+ fprintf(stderr, "Document root path is too long.\n");
+ return 1;
+ }
+ memmove(document_root_tmp, php_optarg, k + 1);
+ /* Clean out any trailing garbage that might have been passed
+ from a batch script. */
+ do {
+ document_root_tmp[k] = '\0';
+ k--;
+ } while ('"' == document_root_tmp[k] || ' ' == document_root_tmp[k]);
+ document_root = document_root_tmp;
+#endif
break;
}
}