<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/event, branch release-1.2.0</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Fixed master exit if there is no events section (ticket #150).</title>
<updated>2012-04-18T14:47:10+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-04-18T14:47:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a73ce28e0a6d855daaf2cd2a40bbf65762e58f2a'/>
<id>a73ce28e0a6d855daaf2cd2a40bbf65762e58f2a</id>
<content type='text'>
Instead of checking if there is events{} section present in configuration
in init_module handler we now do the same in init_conf handler.  This
allows master process to detect incorrect configuration early and
reject it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of checking if there is events{} section present in configuration
in init_module handler we now do the same in init_conf handler.  This
allows master process to detect incorrect configuration early and
reject it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed grammar in error messages.</title>
<updated>2012-04-12T19:35:41+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2012-04-12T19:35:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=43d2b1c04562dbd7c651d8d135d93bb8116b9133'/>
<id>43d2b1c04562dbd7c651d8d135d93bb8116b9133</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed signed integer overflows in timer code (ticket #145).</title>
<updated>2012-04-06T23:46:09+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2012-04-06T23:46:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=baa239c4870ba2236aeb8c54b892dd25d43d780a'/>
<id>baa239c4870ba2236aeb8c54b892dd25d43d780a</id>
<content type='text'>
Integer overflow is undefined behaviour in C and this indeed caused
problems on Solaris/SPARC (at least in some cases).  Fix is to
subtract unsigned integers instead, and then cast result to a signed
one, which is implementation-defined behaviour and used to work.

Strictly speaking, we should compare (unsigned) result with the maximum
value of the corresponding signed integer type instead, this will be
defined behaviour.  This will require much more changes though, and
considered to be overkill for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Integer overflow is undefined behaviour in C and this indeed caused
problems on Solaris/SPARC (at least in some cases).  Fix is to
subtract unsigned integers instead, and then cast result to a signed
one, which is implementation-defined behaviour and used to work.

Strictly speaking, we should compare (unsigned) result with the maximum
value of the corresponding signed integer type instead, this will be
defined behaviour.  This will require much more changes though, and
considered to be overkill for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed spelling in multiline C comments.</title>
<updated>2012-04-03T07:37:31+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2012-04-03T07:37:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=47a04aaa275d1a9b4a51997910f2b2a881464943'/>
<id>47a04aaa275d1a9b4a51997910f2b2a881464943</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<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>
</feed>
