<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/core/ngx_palloc.c, branch release-1.30.0</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Core: introduced the NGX_DEBUG_PALLOC macro.</title>
<updated>2016-03-23T14:44:04+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2016-03-23T14:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0f4315f998bfedbd478c8215994414f1526bfd40'/>
<id>0f4315f998bfedbd478c8215994414f1526bfd40</id>
<content type='text'>
It allows to turn off accumulation of small pool allocations into a big
preallocated chunk of memory.  This is useful for debugging memory access
with sanitizer, since such accumulation can cover buffer overruns from
being detected.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It allows to turn off accumulation of small pool allocations into a big
preallocated chunk of memory.  This is useful for debugging memory access
with sanitizer, since such accumulation can cover buffer overruns from
being detected.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: use ngx_palloc_small() to allocate ngx_pool_large_t.</title>
<updated>2016-03-23T14:44:04+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2016-03-23T14:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9d08bda415b9c987b7a3503bf5fa45cfda15df2e'/>
<id>9d08bda415b9c987b7a3503bf5fa45cfda15df2e</id>
<content type='text'>
This structure cannot be allocated as a large block anyway, otherwise that will
result in infinite recursion, since each large allocation requires to allocate
another ngx_pool_large_t.

The room for the structure is guaranteed by the NGX_MIN_POOL_SIZE constant.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This structure cannot be allocated as a large block anyway, otherwise that will
result in infinite recursion, since each large allocation requires to allocate
another ngx_pool_large_t.

The room for the structure is guaranteed by the NGX_MIN_POOL_SIZE constant.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: introduced the ngx_palloc_small() function.</title>
<updated>2016-03-23T14:44:04+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2016-03-23T14:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=21dfe90a4e7015c0e6530208c2e6a4d8a9284ce1'/>
<id>21dfe90a4e7015c0e6530208c2e6a4d8a9284ce1</id>
<content type='text'>
It deduplicates some code for allocations from memory pool.
No functional changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It deduplicates some code for allocations from memory pool.
No functional changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: moved logging before freeing large blocks of pool.</title>
<updated>2016-03-23T14:44:04+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2016-03-23T14:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=b94eb1dfe6d40acc4ff5ba61284be1279895c9ed'/>
<id>b94eb1dfe6d40acc4ff5ba61284be1279895c9ed</id>
<content type='text'>
This fixes use-after-free memory access with enabled debug log
when pool-&gt;log is allocated as a large block.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes use-after-free memory access with enabled debug log
when pool-&gt;log is allocated as a large block.
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: removed meaningless check from ngx_palloc_block().</title>
<updated>2014-06-25T23:34:19+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-06-25T23:34:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9d4de05be4b7a27fecc24a80c4feee987e8b531c'/>
<id>9d4de05be4b7a27fecc24a80c4feee987e8b531c</id>
<content type='text'>
The check became meaningless after refactoring in 2a92804f4109.
With the loop currently in place, "current" can't be NULL, hence
the check can be dropped.

Additionally, the local variable "current" was removed to
simplify code, and pool-&gt;current now used directly instead.

Found by Coverity (CID 714236).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The check became meaningless after refactoring in 2a92804f4109.
With the loop currently in place, "current" can't be NULL, hence
the check can be dropped.

Additionally, the local variable "current" was removed to
simplify code, and pool-&gt;current now used directly instead.

Found by Coverity (CID 714236).
</pre>
</div>
</content>
</entry>
<entry>
<title>Core: improved ngx_reset_pool() (ticket #490).</title>
<updated>2014-01-17T02:24:53+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2014-01-17T02:24:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=0bfb68eea0f41cfbada5a0e86d525027ed2f21e4'/>
<id>0bfb68eea0f41cfbada5a0e86d525027ed2f21e4</id>
<content type='text'>
Previously pool-&gt;current wasn't moved back to pool, resulting in blocks
not used for further allocations if pool-&gt;current was already moved at the
time of ngx_reset_pool().  Additionally, to preserve logic of moving
pool-&gt;current, the p-&gt;d.failed counters are now properly cleared.  While
here, pool-&gt;chain is also cleared.

This change is essentially a nop with current code, but generally improves
things.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously pool-&gt;current wasn't moved back to pool, resulting in blocks
not used for further allocations if pool-&gt;current was already moved at the
time of ngx_reset_pool().  Additionally, to preserve logic of moving
pool-&gt;current, the p-&gt;d.failed counters are now properly cleared.  While
here, pool-&gt;chain is also cleared.

This change is essentially a nop with current code, but generally improves
things.
</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>Replaced "can not" with "cannot" and "could not" in a bunch of places.</title>
<updated>2011-09-19T14:48:29+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2011-09-19T14:48:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a823c550e45bb653c5d660cceaea3f153b3b28e8'/>
<id>a823c550e45bb653c5d660cceaea3f153b3b28e8</id>
<content type='text'>
Fixed nearby grammar errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed nearby grammar errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix r3331:</title>
<updated>2009-12-17T12:25:46+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2009-12-17T12:25:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=04799a6f7c69c525969255a3bf5acaa4959552d4'/>
<id>04799a6f7c69c525969255a3bf5acaa4959552d4</id>
<content type='text'>
*) now pools are aligned to 16 bytes
*) forbidden to set non-aligned pool sizes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
*) now pools are aligned to 16 bytes
*) forbidden to set non-aligned pool sizes
</pre>
</div>
</content>
</entry>
<entry>
<title>align to minimum of a page and a pool sizes</title>
<updated>2009-11-16T12:50:10+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2009-11-16T12:50:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=a4a054130809c5e37f4fb48cb2cdd66b4237e577'/>
<id>a4a054130809c5e37f4fb48cb2cdd66b4237e577</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
