diff options
author | David Soria Parra <dsp@php.net> | 2011-06-29 23:29:01 +0000 |
---|---|---|
committer | David Soria Parra <dsp@php.net> | 2011-06-29 23:29:01 +0000 |
commit | 54b84f832ae05bf3b6f3e3739f20f57e680c3e4e (patch) | |
tree | 1cf05d7e306c576e03ca617425c085ec47748bfd /sapi/cli/php_cli_server.c | |
parent | 91157122639a7c1d9fa81fb2402bec8d037daeca (diff) | |
download | php-git-54b84f832ae05bf3b6f3e3739f20f57e680c3e4e.tar.gz |
fix #55072 in-built web server needs to check -t option is a directory
Diffstat (limited to 'sapi/cli/php_cli_server.c')
-rw-r--r-- | sapi/cli/php_cli_server.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sapi/cli/php_cli_server.c b/sapi/cli/php_cli_server.c index f8c68148f8..b0423a1a4f 100644 --- a/sapi/cli/php_cli_server.c +++ b/sapi/cli/php_cli_server.c @@ -88,6 +88,10 @@ # define SOCK_EADDRINUSE WSAEADDRINUSE #endif +#ifndef S_ISDIR +#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR) +#endif + #include "ext/standard/file.h" /* for php_set_sock_blocking() :-( */ #include "ext/standard/php_smart_str.h" #include "ext/standard/html.h" @@ -2060,6 +2064,10 @@ int do_cli_server(int argc, char **argv TSRMLS_DC) /* {{{ */ fprintf(stderr, "Directory or script %s does not exist.\n", document_root); return 1; } + if (!S_ISDIR(sb.st_mode)) { + fprintf(stderr, "%s is not a directory.\n", document_root); + return 1; + } } else { document_root = "."; } |