pjproject: Add cache_pools debugging option.

The pool cache gets in the way of finding use after free errors of memory
pool contents.  Tools like valgrind and MALLOC_DEBUG don't know when a
pool is released because it gets put into the cache instead of being
freed.

* Added the "cache_pools" option to pjproject.conf.  Disabling the option
helps track down pool content mismanagement when using valgrind or
MALLOC_DEBUG.  The cache gets in the way of determining if the pool
contents are used after free and who freed it.

To disable the pool caching simply disable the cache_pools option in
pjproject.conf and restart Asterisk.

Sample pjproject.conf setting:
[startup]
cache_pools=no

* Made current users of the caching pool factory initialization and
destruction calls call common routines to create and destroy cached pools.

ASTERISK-27704

Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
This commit is contained in:
Richard Mudgett
2018-02-27 15:40:18 -06:00
parent 53ed437db3
commit 1a36a452bd
11 changed files with 85 additions and 14 deletions

11
CHANGES
View File

@@ -90,6 +90,17 @@ Core:
* libedit is no longer available as an embedded library and must be provided
by the system.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 15.3.0 to Asterisk 15.4.0 ------------
------------------------------------------------------------------------------
res_pjproject
------------------
* Added the "cache_pools" option to pjproject.conf. Disabling the option
helps track down pool content mismanagement when using valgrind or
MALLOC_DEBUG. The cache gets in the way of determining if the pool contents
are used after free and who freed it.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 15.2.0 to Asterisk 15.3.0 ------------
------------------------------------------------------------------------------