<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/http/modules, branch release-1.14.2</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Mp4: fixed possible pointer overflow on 32-bit platforms.</title>
<updated>2018-11-21T17:23:16+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-11-21T17:23:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=58b551612935acfa48bd65777ea6a18336a7e5bf'/>
<id>58b551612935acfa48bd65777ea6a18336a7e5bf</id>
<content type='text'>
On 32-bit platforms mp4-&gt;buffer_pos might overflow when a large
enough (close to 4 gigabytes) atom is being skipped, resulting in
incorrect memory addesses being read further in the code.  In most
cases this results in harmless errors being logged, though may also
result in a segmentation fault if hitting unmapped pages.

To address this, ngx_mp4_atom_next() now only increments mp4-&gt;buffer_pos
up to mp4-&gt;buffer_end.  This ensures that overflow cannot happen.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On 32-bit platforms mp4-&gt;buffer_pos might overflow when a large
enough (close to 4 gigabytes) atom is being skipped, resulting in
incorrect memory addesses being read further in the code.  In most
cases this results in harmless errors being logged, though may also
result in a segmentation fault if hitting unmapped pages.

To address this, ngx_mp4_atom_next() now only increments mp4-&gt;buffer_pos
up to mp4-&gt;buffer_end.  This ensures that overflow cannot happen.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: disabled keepalive when sending control frames was blocked.</title>
<updated>2018-09-03T16:34:02+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-09-03T16:34:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b540af619bb77e522dc435fa7872674f56f0883a'/>
<id>b540af619bb77e522dc435fa7872674f56f0883a</id>
<content type='text'>
If sending request body was not completed (u-&gt;request_body_sent is not set),
the upstream keepalive module won't save such a connection.  However, it
is theoretically possible (though highly unlikely) that sending of some
control frames can be blocked after the request body was sent.  The
ctx-&gt;output_blocked flag introduced to disable keepalive in such cases.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If sending request body was not completed (u-&gt;request_body_sent is not set),
the upstream keepalive module won't save such a connection.  However, it
is theoretically possible (though highly unlikely) that sending of some
control frames can be blocked after the request body was sent.  The
ctx-&gt;output_blocked flag introduced to disable keepalive in such cases.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: improved keepalive handling.</title>
<updated>2018-09-03T16:34:01+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-09-03T16:34:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=4c86fceffd2f3d0e713ce349f71d3b04118a3298'/>
<id>4c86fceffd2f3d0e713ce349f71d3b04118a3298</id>
<content type='text'>
The code is now able to parse additional control frames after
the response is received, and can send control frames as well.
This fixes keepalive problems as observed with grpc-c, which can
send window update and ping frames after the response, see
http://mailman.nginx.org/pipermail/nginx/2018-August/056620.html.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The code is now able to parse additional control frames after
the response is received, and can send control frames as well.
This fixes keepalive problems as observed with grpc-c, which can
send window update and ping frames after the response, see
http://mailman.nginx.org/pipermail/nginx/2018-August/056620.html.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: clearing buffers in ngx_http_grpc_get_buf().</title>
<updated>2018-07-02T16:02:08+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-07-02T16:02:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a60bdcd8236919ced645115025d5cadaab295463'/>
<id>a60bdcd8236919ced645115025d5cadaab295463</id>
<content type='text'>
We copy input buffers to our buffers, so various flags might be
unexpectedly set in buffers returned by ngx_chain_get_free_buf().

In particular, the b-&gt;in_file flag might be set when the body was
written to a file in a different context.  With sendfile enabled this
in turn might result in protocol corruption if such a buffer was reused
for a control frame.

Make sure to clear buffers and set only fields we really need to be set.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We copy input buffers to our buffers, so various flags might be
unexpectedly set in buffers returned by ngx_chain_get_free_buf().

In particular, the b-&gt;in_file flag might be set when the body was
written to a file in a different context.  With sendfile enabled this
in turn might result in protocol corruption if such a buffer was reused
for a control frame.

Make sure to clear buffers and set only fields we really need to be set.
</pre>
</div>
</content>
</entry>
<entry>
<title>Silenced -Wcast-function-type warnings (closes #1546).</title>
<updated>2018-05-07T09:54:37+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2018-05-07T09:54:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ed41ac66a24d51820391ef207db492f026193758'/>
<id>ed41ac66a24d51820391ef207db492f026193758</id>
<content type='text'>
Cast to intermediate "void *" to lose compiler knowledge about the original
type and pass the warning.  This is not a real fix but rather a workaround.

Found by gcc8.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Cast to intermediate "void *" to lose compiler knowledge about the original
type and pass the warning.  This is not a real fix but rather a workaround.

Found by gcc8.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: limited allocations due to ping and settings frames.</title>
<updated>2018-11-06T13:29:59+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-11-06T13:29:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=65a28d1703c8eaf6b43a92e122c3aa533ba9f5c9'/>
<id>65a28d1703c8eaf6b43a92e122c3aa533ba9f5c9</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 reading 64-bit atoms.</title>
<updated>2018-11-06T13:29:18+00:00</updated>
<author>
<name>Roman Arutyunyan</name>
<email>arut@nginx.com</email>
</author>
<published>2018-11-06T13:29:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=1d4c2fb6da12f3d103849cb9384687213f1656cf'/>
<id>1d4c2fb6da12f3d103849cb9384687213f1656cf</id>
<content type='text'>
Previously there was no validation for the size of a 64-bit atom
in an mp4 file.  This could lead to a CPU hog when the size is 0,
or various other problems due to integer underflow when calculating
atom data size, including segmentation fault or worker process
memory disclosure.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously there was no validation for the size of a 64-bit atom
in an mp4 file.  This could lead to a CPU hog when the size is 0,
or various other problems due to integer underflow when calculating
atom data size, including segmentation fault or worker process
memory disclosure.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: fixed possible sign extension of error and setting_value.</title>
<updated>2018-03-22T16:26:25+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2018-03-22T16:26:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0ac57648ebc93358e977939bfcb9d1e67485b98e'/>
<id>0ac57648ebc93358e977939bfcb9d1e67485b98e</id>
<content type='text'>
All cases are harmless and should not happen on valid values, though can
result in bad values being shown incorrectly in logs.

Found by Coverity (CID 1430311, 1430312, 1430313).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All cases are harmless and should not happen on valid values, though can
result in bad values being shown incorrectly in logs.

Found by Coverity (CID 1430311, 1430312, 1430313).
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: fixed missing state save in frame header parsing.</title>
<updated>2018-03-20T12:58:11+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2018-03-20T12:58:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=e232421266416ed841272847ea307e935852230d'/>
<id>e232421266416ed841272847ea307e935852230d</id>
<content type='text'>
Previously, frame state wasn't saved if HEADERS frame payload
that begins with header fragment was not received at once.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, frame state wasn't saved if HEADERS frame payload
that begins with header fragment was not received at once.
</pre>
</div>
</content>
</entry>
<entry>
<title>gRPC: fixed parsing response headers split on CONTINUATION frames.</title>
<updated>2018-03-19T13:42:56+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2018-03-19T13:42:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f3ad346952e90c4d5dc34b5da924f1a57deb5165'/>
<id>f3ad346952e90c4d5dc34b5da924f1a57deb5165</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
