asterisk/main
Matthew Jordan 79e9b37ad0 localtime: Fix file descriptor leak on kqueue(2) systems
The localtime management in the Asterisk core contains a thread that watches
for changes in the local timezone. On systems where the directory containing
/etc/localtime is modified frequently, the thread monitoring the changes will
be woken up to determine if any changes in timezone have occurred. When using
kqueue(2), this can cause a leak of file descriptors due to some improper
management of resources.

This patch updates the kqueue(2) handling in localtime, such that is no longer
leaks resources.

Review: https://reviewboard.asterisk.org/r/4450/

ASTERISK-24739 #close
Reported by: Ed Hynan
patches:
  11.15.0-u.diff uploaded by Ed Hynan (Licnese 6680)
  11.7.0-u.diff uploaded by Ed Hynan (License 6680)
  svn-trunk-Jan-26-2015-u.diff uploaded by Ed Hynan (License 6680)
........

Merged revisions 432691 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 432693 from http://svn.asterisk.org/svn/asterisk/branches/13


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@432694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2015-03-10 18:05:37 +00:00
..
editline cli.c: Fix tab completion "module load" when MALLOC_DEBUG is enabled. 2014-09-22 17:42:26 +00:00
stdtime localtime: Fix file descriptor leak on kqueue(2) systems 2015-03-10 18:05:37 +00:00
Makefile main/Makefile: fix compilation error of buildinfo occurring on 'make install' 2014-07-04 15:26:58 +00:00
abstract_jb.c func_jitterbuffer: fix frame leaks. 2014-11-02 07:40:57 +00:00
acl.c Fix error with mixed address family ACLs. 2014-11-20 16:37:58 +00:00
adsi.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
alaw.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
aoc.c ISDN AOC: Fix crash from an AOC-E message that doesn't have a channel association. 2015-02-19 18:26:49 +00:00
app.c app: Add functions to swap voicemail function table for testing purposes 2015-03-06 21:38:36 +00:00
ast_expr2.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
ast_expr2.fl Avoid cppcheck warnings; removing unused vars and a bit of cleanup. 2012-04-17 18:57:40 +00:00
ast_expr2.h Allow the REALTIME() function to report errors back to the caller. 2012-07-11 17:16:50 +00:00
ast_expr2.y core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
ast_expr2f.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
asterisk.c main/asterisk.c: Reverse #if statement in listener() to fix code folding. 2015-02-21 02:51:35 +00:00
asterisk.dynamics Fix error loading res_monitor. 2014-04-23 15:02:39 +00:00
asterisk.exports.in Add _IO_stdin_used in version-script to fix SIGBUSes on Sparc. 2013-08-22 08:26:55 +00:00
astfd.c Unregister CLI commands on exit 2013-08-20 15:36:10 +00:00
astmm.c MALLOC_DEBUG: Change fence magic number to be completely different from the freed magic number. 2013-09-09 23:29:44 +00:00
astobj2.c astobj2.c/refcounter.py: Fix to deal with invalid object refs. 2014-09-18 16:56:40 +00:00
astobj2_container.c ao2_container node object ignores REF_DEBUG in all places except one 2014-06-25 18:57:04 +00:00
astobj2_container_private.h astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
astobj2_hash.c astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
astobj2_private.h astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
astobj2_rbtree.c astobj2: Additional refactoring to push impl specific code down into the impls. 2014-06-20 15:27:43 +00:00
audiohook.c audiohooks: Clean references to formats 2014-10-30 23:45:25 +00:00
autochan.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
autoservice.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
backtrace.c Fix memory corruption when trying to get "core show locks". 2013-08-23 18:07:40 +00:00
bridge.c HTTP: Stop accepting requests on final system shutdown. 2015-02-11 17:39:13 +00:00
bridge_after.c Fix some memory leaks. 2015-01-30 16:49:59 +00:00
bridge_basic.c bridge: avoid leaking channel during blond transfer pt2 2015-01-05 22:50:32 +00:00
bridge_channel.c bridge / res_pjsip_sdp_rtp: Fix issues with media not being reinvited during direct media. 2015-01-27 17:34:37 +00:00
bridge_roles.c ARI: bridges/{bridgeID}/addChannel: add roles parameter 2013-08-05 16:59:13 +00:00
bucket.c Allow shutdown to unload modules that register bucket scheme's or codec's. 2015-02-21 02:58:19 +00:00
buildinfo.c fix a few small things found by using sparse 2008-10-30 16:49:02 +00:00
callerid.c CallerID: Fix parsing regression 2014-10-10 13:03:18 +00:00
ccss.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
cdr.c Documentation: Revise explanation of cdr.conf option 'Unanswered' 2014-11-14 18:12:05 +00:00
cel.c Fix race condition that could result in ARI transfer messages not being sent. 2014-11-14 15:28:42 +00:00
channel.c app_chanspy, channel: fix frame leaks 2015-02-26 17:12:12 +00:00
channel_internal_api.c Stasis: Fix StasisStart/End order and missing events 2014-12-08 15:45:46 +00:00
chanvars.c res_phoneprov: Refactor phoneprov to allow pluggable config providers 2014-10-09 17:46:23 +00:00
cli.c Call IDs: Fix appearance of call ID in core show channels when NULL 2014-09-05 19:39:04 +00:00
codec.c Allow shutdown to unload modules that register bucket scheme's or codec's. 2015-02-21 02:58:19 +00:00
codec_builtin.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
config.c various: cleanup issues found during leak hunt 2015-02-06 21:26:46 +00:00
config_options.c AMI: Allow for command response documentation 2014-07-24 13:00:59 +00:00
core_local.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
core_unreal.c AMI: Add missing VarSet events when a channel inherits variables. 2014-10-17 02:49:57 +00:00
crypt.c Fix utils directory breakage. 2013-07-04 13:06:15 +00:00
cygload.c Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
data.c data: Properly access formats in capabilities structure when adding codecs. 2014-10-07 18:34:40 +00:00
datastore.c This is no longer needed. 2013-06-29 00:18:57 +00:00
db.c Revert -r430452 It needs to be redone for the next major AMI version change instead. 2015-01-12 18:09:27 +00:00
devicestate.c devicestate.c: Minor tweaks 2014-09-05 17:45:03 +00:00
dial.c Dial API: add self destruct option when complete 2015-02-26 18:53:36 +00:00
dns.c Clean up files that do not end with newlines 2014-08-21 14:52:28 +00:00
dnsmgr.c Migrate a large number of AMI events over to Stasis-Core 2013-05-24 20:44:07 +00:00
dsp.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
ecdisa.h Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
endpoints.c main/stasis: Allow subscriptions to use a threadpool for message delivery 2014-12-01 17:59:21 +00:00
enum.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
event.c event.c: Fix type mismatch errors in ie_maps[]. 2014-06-27 23:21:44 +00:00
features.c app_bridge: return to the next dialplan priority 2015-01-09 21:45:10 +00:00
features_config.c Allow for transferer to retry when dialing an invalid extension. 2014-11-17 16:58:52 +00:00
file.c main/file.c: fix possible extra ast_module_unref to format modules. 2014-11-06 12:15:54 +00:00
fixedjitterbuf.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fixedjitterbuf.h Kill off red blobs in most of main/* 2012-03-22 19:51:16 +00:00
format.c media: Fix crash when determining sample count of a frame during shutdown. 2014-12-12 17:01:42 +00:00
format_cache.c Clean up files that do not end with newlines 2014-08-21 14:52:28 +00:00
format_cap.c Add API call to determine if format capability structure is "empty". 2014-09-18 16:38:26 +00:00
format_compatibility.c chan_iax2: Several media format fixes. 2014-08-07 18:51:16 +00:00
frame.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
framehook.c audiohooks: Reevaluate the bridge technology when an audiohook is added or removed. 2014-10-03 19:42:54 +00:00
fskmodem.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fskmodem_float.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
fskmodem_int.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
global_datastores.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
hashtab.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
heap.c Fix incorrect usages of ast_realloc(). 2013-09-10 18:05:47 +00:00
http.c http: Add missing html tag to 'httpstatus' functionality. 2015-02-21 14:06:20 +00:00
image.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
indications.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
io.c Allow Asterisk to compile under GCC 4.10 2014-05-09 22:49:26 +00:00
jitterbuf.c jitterbuf: Fix memory leak on jitter buffer reset 2013-10-24 19:42:21 +00:00
json.c ARI: Fix crash if integer values used in JSON payload 'variables' object. 2015-02-27 18:31:31 +00:00
libasteriskssl.c Resolve memory leaks in TLS initialization and TLS client connections 2012-09-14 19:53:43 +00:00
libasteriskssl.exports.in Address OpenSSL initialization issues when using third-party libraries. 2012-01-30 21:21:16 +00:00
loader.c Allow shutdown to unload modules that register bucket scheme's or codec's. 2015-02-21 02:58:19 +00:00
lock.c DEBUG_THREADS: Fix regression and lock tracking initialization problems. 2014-12-12 23:49:36 +00:00
logger.c queue_log: Post QUEUESTART entry when Asterisk fully boots. 2014-12-22 20:08:35 +00:00
manager.c Fix some memory leaks. 2015-01-30 16:49:59 +00:00
manager_bridges.c Fix typo's (retrieve, specified, address). 2015-01-23 15:13:08 +00:00
manager_channels.c ARI/AMI: Include language in standard channel snapshot output 2014-12-09 20:20:27 +00:00
manager_endpoints.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
manager_mwi.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
manager_system.c Multiple revisions 399887,400138,400178,400180-400181 2013-09-30 18:55:27 +00:00
md5.c md5: supress some compiler warnings. 2012-04-28 01:33:49 +00:00
media_index.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
message.c message: Don't close an AMI connection on SendMessage action error 2014-10-06 18:39:54 +00:00
mixmonitor.c Removed quotes from svn:keywords props on a few files. 2013-07-29 17:51:25 +00:00
named_acl.c acl: Fix reloading of configuration if configuration file does not exist at startup. 2014-12-20 20:57:47 +00:00
netsock.c Move eid functions to utils.c, mark netsock.h deprecated 2014-06-24 02:50:15 +00:00
netsock2.c pjsip cli: Change Identify to show CIDR notation instead of netmasks. 2014-06-19 20:13:20 +00:00
optional_api.c Logger/CLI/etc.: Fix some aesthetic issues; reduce chatty verbose messages 2014-05-28 22:54:12 +00:00
parking.c res_pjsip_refer: Fix bugs involving Parking/PJSIP/transfers 2014-05-22 15:52:30 +00:00
pbx.c Fix some memory leaks. 2015-01-30 16:49:59 +00:00
pickup.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
plc.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
poll.c Merged revisions 285268 via svnmerge from 2010-09-07 19:09:08 +00:00
presencestate.c presencestate: Allow channel drivers to provide presence state information 2014-12-22 14:33:24 +00:00
privacy.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
rtp_engine.c Various fixes for OS X 2015-01-26 14:50:40 +00:00
say.c app_voicemail, say: Add support for Japanese Language 2014-06-30 04:00:19 +00:00
sched.c Create work around for scheduler leaks during shutdown. 2015-02-19 02:03:01 +00:00
sdp_srtp.c channels/sip/sdp_crypto: Handle SRTP keys negotiated with key lifetime/MKI 2015-02-25 21:42:39 +00:00
security_events.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
sem.c Various fixes for OS X 2015-01-26 14:50:40 +00:00
sha1.c Doxygen Updates - janitor work 2012-09-21 17:14:59 +00:00
sip_api.c Don't make chan_sip export global symbols. 2012-10-11 15:49:02 +00:00
slinfactory.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
smoother.c media formats: re-architect handling of media for performance improvements 2014-07-20 22:06:33 +00:00
sorcery.c sorcery: Output an error message if a wizard is specified for an object type and it isn't found. 2015-02-14 19:46:09 +00:00
sounds_index.c Indexer: Format message types may not exist 2014-10-08 14:54:54 +00:00
srv.c Removed #if checks for crazy old versions of OS X. 2013-05-08 20:25:28 +00:00
stasis.c main/stasis: Allow subscriptions to use a threadpool for message delivery 2014-12-01 17:59:21 +00:00
stasis_bridges.c Fix race condition that could result in ARI transfer messages not being sent. 2014-11-14 15:28:42 +00:00
stasis_cache.c main/stasis: Allow subscriptions to use a threadpool for message delivery 2014-12-01 17:59:21 +00:00
stasis_cache_pattern.c stasis: use ao2_t_alloc for certain object allocators 2014-07-18 19:55:24 +00:00
stasis_channels.c Fix some memory leaks. 2015-01-30 16:49:59 +00:00
stasis_endpoints.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
stasis_message.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
stasis_message_router.c res_pjsip: make it unloadable (take 2) 2015-01-27 19:12:56 +00:00
stasis_system.c Stasis: Allow message types to be blocked 2014-08-06 12:55:28 +00:00
strcompat.c Add builtin roundf() for systems lacking it. 2013-01-19 20:54:07 +00:00
strings.c Add support for RFC 4662 resource list subscriptions. 2014-08-07 19:26:32 +00:00
stun.c stun: correct attribute string padding to match rfc 2014-11-14 15:52:21 +00:00
syslog.c main/syslog: Allow dynamic logs, such as security events, to log to the syslog 2015-01-12 18:01:46 +00:00
taskprocessor.c chan_pjsip: Fix deadlock when masquerading PJSIP channels. 2014-10-03 17:47:42 +00:00
tcptls.c tcptls: Handle new OpenSSL compile time option to disable SSLv3 2015-02-19 15:28:56 +00:00
tdd.c core: Don't allow free to mean ast_free (and malloc, etc..). 2014-09-26 14:41:38 +00:00
term.c Revamp of terminal color codes 2013-02-14 18:47:56 +00:00
test.c main/test: Fix compilation issue on 32-bit systems 2014-12-04 17:13:48 +00:00
threadpool.c threadpool.c: Minor cleanup fixes. 2014-09-29 20:28:24 +00:00
threadstorage.c Unregister CLI commands on exit 2013-08-20 15:36:10 +00:00
timing.c timing: Improve performance for most timing implementations. 2014-02-07 20:01:45 +00:00
translate.c translate: Prevent invalid memory accesses on fast shutdown 2015-03-04 18:55:08 +00:00
udptl.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00:00
ulaw.c Multiple revisions 369001-369002 2012-06-15 16:20:16 +00:00
uri.c uri: Quiet warning about type qualifiers ignored on function return type 2014-08-21 14:42:12 +00:00
utils.c various: cleanup issues found during leak hunt 2015-02-06 21:26:46 +00:00
uuid.c Fix printf problems with high ascii characters after r413586 (1.8). 2014-12-17 10:23:32 +00:00
xml.c Detect and use xsltCleanupGlobals when available 2013-10-03 18:00:15 +00:00
xmldoc.c Fix some memory leaks. 2015-01-30 16:49:59 +00:00