summaryrefslogtreecommitdiff
path: root/src/mod_staticfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_staticfile.c')
-rw-r--r--src/mod_staticfile.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mod_staticfile.c b/src/mod_staticfile.c
index 6fac65b..f5308cd 100644
--- a/src/mod_staticfile.c
+++ b/src/mod_staticfile.c
@@ -397,6 +397,19 @@ URIHANDLER_FUNC(mod_staticfile_subrequest) {
}
/* we only handline regular files */
+#ifdef HAVE_LSTAT
+ if ((sce->is_symlink == 1) && !con->conf.follow_symlink) {
+ con->http_status = 403;
+
+ if (con->conf.log_request_handling) {
+ log_error_write(srv, __FILE__, __LINE__, "s", "-- access denied due symlink restriction");
+ log_error_write(srv, __FILE__, __LINE__, "sb", "Path :", con->physical.path);
+ }
+
+ buffer_reset(con->physical.path);
+ return HANDLER_FINISHED;
+ }
+#endif
if (!S_ISREG(sce->st.st_mode)) {
con->http_status = 404;