Fix unsafe uses of ast_context pointers.
authorCorey Farrell <git@cfware.com>
Mon, 8 Jun 2015 15:09:57 +0000 (11:09 -0400)
committerCorey Farrell <git@cfware.com>
Mon, 8 Jun 2015 15:09:57 +0000 (11:09 -0400)
commit80621ce3c5da5062f7e3efb42d6e8fcdd9caa3f6
tree830f2bf1823901045bccffe224a858ba70b7a9e8
parent8785d0ccbfa1959d1ba6be8769e9d5356f3fef32
Fix unsafe uses of ast_context pointers.

Although ast_context_find, ast_context_find_or_create and
ast_context_destroy perform locking of the contexts table,
any context pointer can become invalid at any time that the
contexts table is unlocked. This change adds locking around
all complete operations involving these functions.

Places where ast_context_find was followed by ast_context_destroy
have been replaced with calls ast_context_destroy_by_name.

ASTERISK-25094 #close
Reported by: Corey Farrell

Change-Id: I1866b6787730c9c4f3f836b6133ffe9c820734fa
apps/app_meetme.c
channels/chan_iax2.c
channels/chan_sip.c
channels/chan_skinny.c
include/asterisk/pbx.h
main/pbx.c
pbx/pbx_config.c
tests/test_gosub.c
tests/test_pbx.c