diff options
author | Anatol Belski <ab@php.net> | 2017-11-28 12:41:49 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-11-28 12:41:49 +0100 |
commit | 578049fdb6a69c7cd46ff62838384d1d9b1c88c4 (patch) | |
tree | 18af0ec6c18a22a93c12dafab8edf0798df25a3d /sapi/cli/php_cli_server.c | |
parent | ee9e32caca08262de878395f6aff3eed54fc5740 (diff) | |
download | php-git-578049fdb6a69c7cd46ff62838384d1d9b1c88c4.tar.gz |
Fixed bug #73830 Directory does not exist.
Diffstat (limited to 'sapi/cli/php_cli_server.c')
-rw-r--r-- | sapi/cli/php_cli_server.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index 1f9e5abe4f..a9e08f11bc 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -2552,6 +2552,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]; @@ -2561,7 +2565,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; } } |