]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
Merge r1764040 from trunk:
authorJim Jagielski <jim@apache.org>
Wed, 26 Oct 2016 13:44:36 +0000 (13:44 +0000)
committerJim Jagielski <jim@apache.org>
Wed, 26 Oct 2016 13:44:36 +0000 (13:44 +0000)
commitcc5716c16e617e66a5711c8715c1a394d70c6556
tree1f1fd3c41a748784dd98d647fe880fd3610dc828
parent32c1fdc474ec8db2e016784c6e402920053bae41
Merge r1764040 from trunk:

mod_dav: Fix a potential cause of unbounded memory usage or incorrect
behavior in a routine that sends <DAV:response>'s to the output filters.

The dav_send_one_response() function accepts the current head of the output
filter list as an argument, but the actual head can change between calls to
ap_pass_brigade().  This can happen with self-removing filters, e.g., with
the filter from mod_headers or mod_deflate.  Consequently, executing an
already removed filter can either cause unwanted memory usage or incorrect
behavior.

This patch changes the signature of the existing mod_dav's public API,
dav_send_one_response(), because this API is not yet a part of any 2.4.x
release.

* modules/dav/main/mod_dav.c
  (dav_send_one_response): Accept a request_rec instead of an ap_filter_t.
   Write the response to r->output_filters.
  (dav_send_multistatus, dav_stream_response): Update these calling sites
   of dav_send_one_response().

* modules/dav/main/mod_dav.h
  (dav_send_one_response): Adjust definition.

Submitted by: kotkov
Reviewed/backported by: jim

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1766683 13f79535-47bb-0310-9956-ffa450edef68
STATUS
modules/dav/main/mod_dav.c
modules/dav/main/mod_dav.h