summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Bühler <stbuehler@web.de>2014-01-10 12:05:06 +0000
committerStefan Bühler <stbuehler@web.de>2014-01-10 12:05:06 +0000
commit24994e113a90e11730cd07b3bd352643c14ce428 (patch)
tree63f58e3ff6c9c388fe6447a632120c4fcd1ac849
parent657566828ee5879d3fa77d4c076b98ffa8b508e6 (diff)
downloadlighttpd-git-24994e113a90e11730cd07b3bd352643c14ce428.tar.gz
[mod_webdav] fix fd leak found with parfait (fixes #2530, thx kukackajiri)
From: Stefan Bühler <stbuehler@web.de> git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2930 152afb58-edef-0310-8abb-c4023f1b3aa9
-rw-r--r--NEWS1
-rw-r--r--src/mod_webdav.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index a8a54eb7..d6520749 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,7 @@ NEWS
* [core] decode URL before rewrite, enabling it to work in $HTTP["url"] conditionals (fixes #2526)
* [auto* build] remove -no-undefined from linker flags, as we actually link modules with undefined symbols (fixes #2533)
* [mod_mysql_vhost] fix memory leak on config init (#2530)
+ * [mod_webdav] fix fd leak found with parfait (fixes #2530, thx kukackajiri)
- 1.4.33 - 2013-09-27
* mod_fastcgi: fix mix up of "mode" => "authorizer" in other fastcgi configs (fixes #2465, thx peex)
diff --git a/src/mod_webdav.c b/src/mod_webdav.c
index 7f85ce5d..5b335142 100644
--- a/src/mod_webdav.c
+++ b/src/mod_webdav.c
@@ -1717,7 +1717,7 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
if (-1 == c->file.fd && /* open the file if not already open */
-1 == (c->file.fd = open(c->file.name->ptr, O_RDONLY))) {
log_error_write(srv, __FILE__, __LINE__, "ss", "open failed: ", strerror(errno));
-
+ close(fd);
return HANDLER_ERROR;
}
@@ -1726,7 +1726,7 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
strerror(errno), c->file.name, c->file.fd);
close(c->file.fd);
c->file.fd = -1;
-
+ close(fd);
return HANDLER_ERROR;
}