summaryrefslogtreecommitdiff
path: root/sapi/cli/php_cli_server.c
diff options
context:
space:
mode:
authorDavid Soria Parra <dsp@php.net>2011-06-29 23:29:01 +0000
committerDavid Soria Parra <dsp@php.net>2011-06-29 23:29:01 +0000
commit54b84f832ae05bf3b6f3e3739f20f57e680c3e4e (patch)
tree1cf05d7e306c576e03ca617425c085ec47748bfd /sapi/cli/php_cli_server.c
parent91157122639a7c1d9fa81fb2402bec8d037daeca (diff)
downloadphp-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.c8
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 = ".";
}