<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http/modules, branch release-1.18.0</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Auth basic: explicitly zero out password buffer.</title>
<updated>2020-03-12T23:12:10+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2020-03-12T23:12:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=65ae8b315211988a821bdc32050768f41571ddae'/>
<id>65ae8b315211988a821bdc32050768f41571ddae</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Mp4: fixed possible chunk offset overflow.</title>
<updated>2020-02-26T12:10:46+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2020-02-26T12:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ba27037a498ed3839648d7a4097b01ed14949f18'/>
<id>ba27037a498ed3839648d7a4097b01ed14949f18</id>
<content type='text'>
In "co64" atom chunk start offset is a 64-bit unsigned integer.  When trimming
the "mdat" atom, chunk offsets are casted to off_t values which are typically
64-bit signed integers.  A specially crafted mp4 file with huge chunk offsets
may lead to off_t overflow and result in negative trim boundaries.

The consequences of the overflow are:
- Incorrect Content-Length header value in the response.
- Negative left boundary of the response file buffer holding the trimmed "mdat".
  This leads to pread()/sendfile() errors followed by closing the client
  connection.

On rare systems where off_t is a 32-bit integer, this scenario is also feasible
with the "stco" atom.

The fix is to add checks which make sure data chunks referenced by each track
are within the mp4 file boundaries.  Additionally a few more checks are added to
ensure mp4 file consistency and log errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In "co64" atom chunk start offset is a 64-bit unsigned integer.  When trimming
the "mdat" atom, chunk offsets are casted to off_t values which are typically
64-bit signed integers.  A specially crafted mp4 file with huge chunk offsets
may lead to off_t overflow and result in negative trim boundaries.

The consequences of the overflow are:
- Incorrect Content-Length header value in the response.
- Negative left boundary of the response file buffer holding the trimmed "mdat".
  This leads to pread()/sendfile() errors followed by closing the client
  connection.

On rare systems where off_t is a 32-bit integer, this scenario is also feasible
with the "stco" atom.

The fix is to add checks which make sure data chunks referenced by each track
are within the mp4 file boundaries.  Additionally a few more checks are added to
ensure mp4 file consistency and log errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: variables support in the "grpc_pass" directive.</title>
<updated>2020-01-17T09:13:02+00:00</updated>
<author>
<name>Vladimir Homutov</name>
<email>vl@nginx.com</email>
</author>
<published>2020-01-17T09:13:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0e3b3b57357e37c80794fb0bcb4b929be96c9537'/>
<id>0e3b3b57357e37c80794fb0bcb4b929be96c9537</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Dav: added checks for chunked to body presence conditions.</title>
<updated>2019-12-23T17:39:27+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2019-12-23T17:39:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5e5fa2e9e57b713e445b1737005ff6a202bda8ad'/>
<id>5e5fa2e9e57b713e445b1737005ff6a202bda8ad</id>
<content type='text'>
These checks were missed when chunked support was introduced.  And also
added an explicit error message to ngx_http_dav_copy_move_handler()
(it was missed for some reason, in contrast to DELETE and MKCOL handlers).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These checks were missed when chunked support was introduced.  And also
added an explicit error message to ngx_http_dav_copy_move_handler()
(it was missed for some reason, in contrast to DELETE and MKCOL handlers).
</pre>
</div>
</content>
</entry>
<entry>
<title>Rewrite: disallow empty replacements.</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=4c031f9a6a879bcc4e86f5b7d4177996c9bca4cd'/>
<id>4c031f9a6a879bcc4e86f5b7d4177996c9bca4cd</id>
<content type='text'>
While empty replacements were caught at run-time, parsing code
of the "rewrite" directive expects that a minimum length of the
"replacement" argument is 1.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While empty replacements were caught at run-time, parsing code
of the "rewrite" directive expects that a minimum length of the
"replacement" argument is 1.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed request finalization in ngx_http_index_handler().</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=48086f79ad7d9ac08943312f59215533330617d0'/>
<id>48086f79ad7d9ac08943312f59215533330617d0</id>
<content type='text'>
Returning 500 instead of NGX_ERROR is preferable here because
header has not yet been sent to the client.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Returning 500 instead of NGX_ERROR is preferable here because
header has not yet been sent to the client.
</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>Dav: fixed Location in successful MKCOL response.</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=6dc0c880e5b94dc507795369196dec5c2f9d2cc2'/>
<id>6dc0c880e5b94dc507795369196dec5c2f9d2cc2</id>
<content type='text'>
Instead of reducing URI length to not include the terminating '\0'
character in 6ddaac3e0bf7, restore the terminating '/' character.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of reducing URI length to not include the terminating '\0'
character in 6ddaac3e0bf7, restore the terminating '/' character.
</pre>
</div>
</content>
</entry>
<entry>
<title>Upstream keepalive: clearing of c-&gt;data in cached connections.</title>
<updated>2019-12-05T16:38:06+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2019-12-05T16:38:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=953f53921505a884f3912f2d8db5217a71c0479a'/>
<id>953f53921505a884f3912f2d8db5217a71c0479a</id>
<content type='text'>
Previously, connections returned from keepalive cache had c-&gt;data
pointing to the keepalive cache item.  While this shouldn't be a problem
for correct code, as c-&gt;data is not expected to be used before it is set,
explicitly clearing it might help to avoid confusion.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, connections returned from keepalive cache had c-&gt;data
pointing to the keepalive cache item.  While this shouldn't be a problem
for correct code, as c-&gt;data is not expected to be used before it is set,
explicitly clearing it might help to avoid confusion.
</pre>
</div>
</content>
</entry>
<entry>
<title>Limit conn: added shared context.</title>
<updated>2019-11-18T16:50:59+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2019-11-18T16:50:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=5dc242e8f75eae718c1a941e663d7f483acf7c62'/>
<id>5dc242e8f75eae718c1a941e663d7f483acf7c62</id>
<content type='text'>
Previously only an rbtree was associated with a limit_conn.  To make it
possible to associate more data with a limit_conn, shared context is introduced
similar to limit_req.  Also, shared pool pointer is kept in a way similar to
limit_req.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously only an rbtree was associated with a limit_conn.  To make it
possible to associate more data with a limit_conn, shared context is introduced
similar to limit_req.  Also, shared pool pointer is kept in a way similar to
limit_req.
</pre>
</div>
</content>
</entry>
</feed>
