<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git, branch release-1.9.5</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>nginx-1.9.5-RELEASE</title>
<updated>2015-09-22T14:36:21+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-09-22T14:36:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=658813c43b9c930c8fad2cd04600d1aba2ef031b'/>
<id>658813c43b9c930c8fad2cd04600d1aba2ef031b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Style.</title>
<updated>2015-09-22T14:09:50+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-09-22T14:09:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=49b17956f964d2cc244dc7bcdb9dea40ffde6ffc'/>
<id>49b17956f964d2cc244dc7bcdb9dea40ffde6ffc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Increased the default number of output buffers.</title>
<updated>2015-09-15T14:49:15+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-09-15T14:49:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a0d7df93a0188f79733351a7e7e8168b6fdf698e'/>
<id>a0d7df93a0188f79733351a7e7e8168b6fdf698e</id>
<content type='text'>
Since an output buffer can only be used for either reading or sending, small
amounts of data left from the previous operation (due to some limits) must be
sent before nginx will be able to read further into the buffer.  Using only
one output buffer can result in suboptimal behavior that manifests itself in
forming and sending too small chunks of data.  This is particularly painful
with SPDY (or HTTP/2) where each such chunk needs to be prefixed with some
header.

The default flow-control window in HTTP/2 is 64k minus one bytes.  With one
32k output buffer this results is one byte left after exhausting the window.
With two 32k buffers the data will be read into the second free buffer before
sending, thus the minimum output is increased to 32k + 1 bytes which is much
better.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since an output buffer can only be used for either reading or sending, small
amounts of data left from the previous operation (due to some limits) must be
sent before nginx will be able to read further into the buffer.  Using only
one output buffer can result in suboptimal behavior that manifests itself in
forming and sending too small chunks of data.  This is particularly painful
with SPDY (or HTTP/2) where each such chunk needs to be prefixed with some
header.

The default flow-control window in HTTP/2 is 64k minus one bytes.  With one
32k output buffer this results is one byte left after exhausting the window.
With two 32k buffers the data will be read into the second free buffer before
sending, thus the minimum output is increased to 32k + 1 bytes which is much
better.
</pre>
</div>
</content>
</entry>
<entry>
<title>HTTP/2: fixed header block parsing with CONTINUATION frames (#792).</title>
<updated>2015-09-21T22:40:04+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-09-21T22:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=61e1f16d90a15adf503bcfa2f088ba21697df12d'/>
<id>61e1f16d90a15adf503bcfa2f088ba21697df12d</id>
<content type='text'>
It appears that the CONTINUATION frames don't need to be aligned to bounds of
individual headers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It appears that the CONTINUATION frames don't need to be aligned to bounds of
individual headers.
</pre>
</div>
</content>
</entry>
<entry>
<title>HTTP/2: fixed HPACK header field parsing.</title>
<updated>2015-09-21T22:40:04+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-09-21T22:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a27d0bd00dbe8bce8af09a0e5db88135f1c975f8'/>
<id>a27d0bd00dbe8bce8af09a0e5db88135f1c975f8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Sub filter: fixed initialization in http{} level (ticket #791).</title>
<updated>2015-09-21T20:08:34+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2015-09-21T20:08:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f64ff2445157e3a537e43f22c76daa7269c361a8'/>
<id>f64ff2445157e3a537e43f22c76daa7269c361a8</id>
<content type='text'>
If sub_filter directive was only specified at http{} level, sub filter
internal data remained uninitialized.  That would lead to a crash in runtime.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If sub_filter directive was only specified at http{} level, sub filter
internal data remained uninitialized.  That would lead to a crash in runtime.
</pre>
</div>
</content>
</entry>
<entry>
<title>The HTTP/2 implementation (RFC 7240, 7241).</title>
<updated>2015-09-11T17:13:06+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2015-09-11T17:13:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ee37ff613fe2a746e23040a7a8aba64063123175'/>
<id>ee37ff613fe2a746e23040a7a8aba64063123175</id>
<content type='text'>
The SPDY support is removed, as it's incompatible with the new module.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The SPDY support is removed, as it's incompatible with the new module.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: fixed segfault with null in wildcard hash names.</title>
<updated>2015-09-11T14:04:40+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-09-11T14:04:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=2c9691431229bfe33e81c5a03a70792548b28e22'/>
<id>2c9691431229bfe33e81c5a03a70792548b28e22</id>
<content type='text'>
A configuration like

    server { server_name .foo^@; }
    server { server_name .foo; }

resulted in a segmentation fault during construction of server names hash.

Reported by Markus Linnala.
Found with afl-fuzz.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A configuration like

    server { server_name .foo^@; }
    server { server_name .foo; }

resulted in a segmentation fault during construction of server names hash.

Reported by Markus Linnala.
Found with afl-fuzz.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed segfault with incorrect location nesting.</title>
<updated>2015-09-11T14:04:04+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-09-11T14:04:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7930a6c44279315140955fac230cf5305fc3c550'/>
<id>7930a6c44279315140955fac230cf5305fc3c550</id>
<content type='text'>
A configuration with a named location inside a zero-length prefix
or regex location used to trigger a segmentation fault, as
ngx_http_core_location() failed to properly detect if a nested location
was created.  Example configuration to reproduce the problem:

    location "" {
        location @foo {}
    }

Fix is to not rely on a parent location name length, but rather check
command type we are currently parsing.

Identical fix is also applied to ngx_http_rewrite_if(), which used to
incorrectly assume the "if" directive is on server{} level in such
locations.

Reported by Markus Linnala.
Found with afl-fuzz.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A configuration with a named location inside a zero-length prefix
or regex location used to trigger a segmentation fault, as
ngx_http_core_location() failed to properly detect if a nested location
was created.  Example configuration to reproduce the problem:

    location "" {
        location @foo {}
    }

Fix is to not rely on a parent location name length, but rather check
command type we are currently parsing.

Identical fix is also applied to ngx_http_rewrite_if(), which used to
incorrectly assume the "if" directive is on server{} level in such
locations.

Reported by Markus Linnala.
Found with afl-fuzz.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cache: check the whole cache key in addition to hashes.</title>
<updated>2015-09-11T14:03:56+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2015-09-11T14:03:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ce05841eefe0e6c5d18ae9b0fb8f9fbd7e99afdd'/>
<id>ce05841eefe0e6c5d18ae9b0fb8f9fbd7e99afdd</id>
<content type='text'>
This prevents a potential attack that discloses cached data if an attacker
will be able to craft a hash collision between some cache key the attacker
is allowed to access and another cache key with protected data.

See http://mailman.nginx.org/pipermail/nginx-devel/2015-September/007288.html.

Thanks to Gena Makhomed and Sergey Brester.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This prevents a potential attack that discloses cached data if an attacker
will be able to craft a hash collision between some cache key the attacker
is allowed to access and another cache key with protected data.

See http://mailman.nginx.org/pipermail/nginx-devel/2015-September/007288.html.

Thanks to Gena Makhomed and Sergey Brester.
</pre>
</div>
</content>
</entry>
</feed>
