<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/event, branch release-1.1.17</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Whitespace fixes.</title>
<updated>2012-03-05T18:09:06+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-03-05T18:09:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ee187436afcaaeef4bb8bcb65b3f5f815920761e'/>
<id>ee187436afcaaeef4bb8bcb65b3f5f815920761e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed spelling in single-line comments.</title>
<updated>2012-02-28T11:31:05+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2012-02-28T11:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b74f8ffce4aa7a7090e19021854304570238edb1'/>
<id>b74f8ffce4aa7a7090e19021854304570238edb1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix of rbtree lookup on hash collisions.</title>
<updated>2012-02-27T22:15:39+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-02-27T22:15:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7ca6c1ff782afbb83b9f17d6552566c823247e29'/>
<id>7ca6c1ff782afbb83b9f17d6552566c823247e29</id>
<content type='text'>
Previous code incorrectly assumed that nodes with identical keys are linked
together.  This might not be true after tree rebalance.

Patch by Lanshun Zhou.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previous code incorrectly assumed that nodes with identical keys are linked
together.  This might not be true after tree rebalance.

Patch by Lanshun Zhou.
</pre>
</div>
</content>
</entry>
<entry>
<title>Event pipe: fixed buffer loss in p-&gt;length case.</title>
<updated>2012-02-22T11:28:53+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-02-22T11:28:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b5d0d7a232f57f26a340e7e391110055c9fcd876'/>
<id>b5d0d7a232f57f26a340e7e391110055c9fcd876</id>
<content type='text'>
With previous code raw buffer might be lost if p-&gt;input_filter() was called
on a buffer without any data and used ngx_event_pipe_add_free_buf() to
return it to the free list.  This eventually might cause "all buffers busy"
problem, resulting in segmentation fault due to null pointer dereference in
ngx_event_pipe_write_chain_to_temp_file().

In ngx_event_pipe_add_free_buf() the buffer was added to the list start
due to pos == last, and then "p-&gt;free_raw_bufs = cl-&gt;next" in
ngx_event_pipe_read_upstream() dropped both chain links to the buffer
from the p-&gt;free_raw_bufs list.

Fix is to move "p-&gt;free_raw_bufs = cl-&gt;next" before calling the
p-&gt;input_filter().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With previous code raw buffer might be lost if p-&gt;input_filter() was called
on a buffer without any data and used ngx_event_pipe_add_free_buf() to
return it to the free list.  This eventually might cause "all buffers busy"
problem, resulting in segmentation fault due to null pointer dereference in
ngx_event_pipe_write_chain_to_temp_file().

In ngx_event_pipe_add_free_buf() the buffer was added to the list start
due to pos == last, and then "p-&gt;free_raw_bufs = cl-&gt;next" in
ngx_event_pipe_read_upstream() dropped both chain links to the buffer
from the p-&gt;free_raw_bufs list.

Fix is to move "p-&gt;free_raw_bufs = cl-&gt;next" before calling the
p-&gt;input_filter().
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed error handling in ngx_event_connect_peer().</title>
<updated>2012-01-30T11:12:52+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-01-30T11:12:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=4a23bc57051187362094c1f41793901805ac55c2'/>
<id>4a23bc57051187362094c1f41793901805ac55c2</id>
<content type='text'>
Previously if ngx_add_event() failed a connection was freed two times (once
in the ngx_event_connect_peer(), and again by a caller) as pc-&gt;connection was
left set.  Fix is to always use ngx_close_connection() to close connection
properly and set pc-&gt;connection to NULL on errors.

Patch by Piotr Sikora.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously if ngx_add_event() failed a connection was freed two times (once
in the ngx_event_connect_peer(), and again by a caller) as pc-&gt;connection was
left set.  Fix is to always use ngx_close_connection() to close connection
properly and set pc-&gt;connection to NULL on errors.

Patch by Piotr Sikora.
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed ENGINE_load_builtin_engines() call.</title>
<updated>2012-01-30T07:38:27+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-01-30T07:38:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=90a7a8f5d98b464b675c883383185a5048fc22db'/>
<id>90a7a8f5d98b464b675c883383185a5048fc22db</id>
<content type='text'>
It's already called by OPENSSL_config().  Calling it again causes some
openssl engines (notably GOST) to corrupt memory, as they don't expect
to be created more than once.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's already called by OPENSSL_config().  Calling it again causes some
openssl engines (notably GOST) to corrupt memory, as they don't expect
to be created more than once.
</pre>
</div>
</content>
</entry>
<entry>
<title>Copyright updated.</title>
<updated>2012-01-18T15:07:43+00:00</updated>
<author>
<name>Maxim Konovalov</name>
<email>maxim@nginx.com</email>
</author>
<published>2012-01-18T15:07:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=f8d59e33f34185c28d1d3c6625a897e214b7ca73'/>
<id>f8d59e33f34185c28d1d3c6625a897e214b7ca73</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Added support for TLSv1.1, TLSv1.2 in ssl_protocols directive.</title>
<updated>2012-01-11T11:15:00+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-01-11T11:15:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=4efcbce3289803bb087ff78ee2b3784558daed27'/>
<id>4efcbce3289803bb087ff78ee2b3784558daed27</id>
<content type='text'>
Support for TLSv1.1 and TLSv1.2 protocols was introduced in OpenSSL 1.0.1
(-beta1 was recently released).  This change makes it possible to disable
these protocols and/or enable them without other protocols.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Support for TLSv1.1 and TLSv1.2 protocols was introduced in OpenSSL 1.0.1
(-beta1 was recently released).  This change makes it possible to disable
these protocols and/or enable them without other protocols.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed AIO on Linux, broken in r4306.</title>
<updated>2011-11-29T17:27:13+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2011-11-29T17:27:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c09d65b17990c6c4028df68dfab7a7452ef16d00'/>
<id>c09d65b17990c6c4028df68dfab7a7452ef16d00</id>
<content type='text'>
Events from eventfd do not have c-&gt;write set, and the stale event
check added in r4306 causes null pointer dereference.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Events from eventfd do not have c-&gt;write set, and the stale event
check added in r4306 causes null pointer dereference.
</pre>
</div>
</content>
</entry>
<entry>
<title>Added shmtx interface to forcibly unlock mutexes.</title>
<updated>2011-11-23T13:55:38+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2011-11-23T13:55:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=91ecc8f43c42c677cd7b2230a68f19b64b649ba5'/>
<id>91ecc8f43c42c677cd7b2230a68f19b64b649ba5</id>
<content type='text'>
It is currently used from master process on abnormal worker termination to
unlock accept mutex (unlocking of accept mutex was broken in 1.0.2).  It is
expected to be used in the future to unlock other mutexes as well.

Shared mutex code was rewritten to make this possible in a safe way, i.e.
with a check if lock was actually held by the exited process.  We again use
pid to lock mutex, and use separate atomic variable for a count of processes
waiting in sem_wait().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is currently used from master process on abnormal worker termination to
unlock accept mutex (unlocking of accept mutex was broken in 1.0.2).  It is
expected to be used in the future to unlock other mutexes as well.

Shared mutex code was rewritten to make this possible in a safe way, i.e.
with a check if lock was actually held by the exited process.  We again use
pid to lock mutex, and use separate atomic variable for a count of processes
waiting in sem_wait().
</pre>
</div>
</content>
</entry>
</feed>
