<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http/modules/ngx_http_static_module.c, branch release-1.29.2</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Fixed "zero size buf" alerts with subrequests.</title>
<updated>2023-01-28T02:23:33+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2023-01-28T02:23:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=384a8d8dfbf817b98715e8ed5ec7bf3cb545d501'/>
<id>384a8d8dfbf817b98715e8ed5ec7bf3cb545d501</id>
<content type='text'>
Since 4611:2b6cb7528409 responses from the gzip static, flv, and mp4 modules
can be used with subrequests, though empty files were not properly handled.
Empty gzipped, flv, and mp4 files thus resulted in "zero size buf in output"
alerts.  While valid corresponding files are not expected to be empty, such
files shouldn't result in alerts.

Fix is to set b-&gt;sync on such empty subrequest responses, similarly to what
ngx_http_send_special() does.

Additionally, the static module, the ngx_http_send_response() function, and
file cache are modified to do the same instead of not sending the response
body at all in such cases, since not sending the response body at all is
believed to be at least questionable, and might break various filters
which do not expect such behaviour.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since 4611:2b6cb7528409 responses from the gzip static, flv, and mp4 modules
can be used with subrequests, though empty files were not properly handled.
Empty gzipped, flv, and mp4 files thus resulted in "zero size buf in output"
alerts.  While valid corresponding files are not expected to be empty, such
files shouldn't result in alerts.

Fix is to set b-&gt;sync on such empty subrequest responses, similarly to what
ngx_http_send_special() does.

Additionally, the static module, the ngx_http_send_response() function, and
file cache are modified to do the same instead of not sending the response
body at all in such cases, since not sending the response body at all is
believed to be at least questionable, and might break various filters
which do not expect such behaviour.
</pre>
</div>
</content>
</entry>
<entry>
<title>Style.</title>
<updated>2023-01-28T02:20:23+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2023-01-28T02:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=856a01860e676bd5fe88d0f7ad7189e47cce04d9'/>
<id>856a01860e676bd5fe88d0f7ad7189e47cce04d9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>All known output headers can be linked lists now.</title>
<updated>2022-05-30T18:25:45+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2022-05-30T18:25:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=e59c2096ae9d561997ad2d64d61094503e6be4c3'/>
<id>e59c2096ae9d561997ad2d64d61094503e6be4c3</id>
<content type='text'>
The h-&gt;next pointer properly provided as NULL in all cases where known
output headers are added.

Note that there are 3rd party modules which might not do this, and it
might be risky to rely on this for arbitrary headers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The h-&gt;next pointer properly provided as NULL in all cases where known
output headers are added.

Note that there are 3rd party modules which might not do this, and it
might be risky to rely on this for arbitrary headers.
</pre>
</div>
</content>
</entry>
<entry>
<title>Location header escaping in redirects (ticket #882).</title>
<updated>2021-05-24T18:55:20+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2021-05-24T18:55:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=41a241b3ef74dbbe3d82ab2ebbe682919e4a0b90'/>
<id>41a241b3ef74dbbe3d82ab2ebbe682919e4a0b90</id>
<content type='text'>
The header is escaped in redirects based on request URI or
location name (auto redirect).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The header is escaped in redirects based on request URI or
location name (auto redirect).
</pre>
</div>
</content>
</entry>
<entry>
<title>Saved some memory allocations.</title>
<updated>2019-12-16T12:19:01+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2019-12-16T12:19:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=be45a3aa590a5f7e64c6d55e8e0f78565adf4823'/>
<id>be45a3aa590a5f7e64c6d55e8e0f78565adf4823</id>
<content type='text'>
In configurations when "root" has variables, some modules unnecessarily
allocated memory for the "Location" header value.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In configurations when "root" has variables, some modules unnecessarily
allocated memory for the "Location" header value.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleaned up r-&gt;headers_out.headers allocation error handling.</title>
<updated>2017-04-20T15:26:37+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2017-04-20T15:26:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9ecf8428645579cf66adc5ba939bf1267924c5bc'/>
<id>9ecf8428645579cf66adc5ba939bf1267924c5bc</id>
<content type='text'>
If initialization of a header failed for some reason after ngx_list_push(),
leaving the header as is can result in uninitialized memory access by
the header filter or the log module.  The fix is to clear partially
initialized headers in case of errors.

For the Cache-Control header, the fix is to postpone pushing
r-&gt;headers_out.cache_control until its value is completed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If initialization of a header failed for some reason after ngx_list_push(),
leaving the header as is can result in uninitialized memory access by
the header filter or the log module.  The fix is to clear partially
initialized headers in case of errors.

For the Cache-Control header, the fix is to postpone pushing
r-&gt;headers_out.cache_control until its value is completed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use ngx_calloc_buf() where appropriate.</title>
<updated>2017-04-12T19:21:04+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2017-04-12T19:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=cac361718c741fd2bfe13d43aa2fabf23d0a2ca4'/>
<id>cac361718c741fd2bfe13d43aa2fabf23d0a2ca4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added missing static specifiers.</title>
<updated>2017-03-02T13:46:00+00:00</updated>
<author>
<name>Eran Kornblau</name>
<email>erankor@gmail.com</email>
</author>
<published>2017-03-02T13:46:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0759f088a532ec48170ca03d694cc103757a0f4c'/>
<id>0759f088a532ec48170ca03d694cc103757a0f4c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed missing "Location" field with some relative redirects.</title>
<updated>2016-12-22T08:58:52+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2016-12-22T08:58:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f02170672926e6afe273340fefb44bd1cc1d6ed4'/>
<id>f02170672926e6afe273340fefb44bd1cc1d6ed4</id>
<content type='text'>
Relative redirects did not work with directory redirects and
auto redirects issued by nginx.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relative redirects did not work with directory redirects and
auto redirects issued by nginx.
</pre>
</div>
</content>
</entry>
<entry>
<title>Style: unified request method checks.</title>
<updated>2015-11-06T12:22:43+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2015-11-06T12:22:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5ea66922d9c432056c4d42b2608ef1e4358b9fa4'/>
<id>5ea66922d9c432056c4d42b2608ef1e4358b9fa4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
