Prevent invalid access of free'd memory if DAHDI channel during an MWI event
authorRichard Mudgett <rmudgett@digium.com>
Tue, 10 Apr 2012 21:50:46 +0000 (21:50 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Tue, 10 Apr 2012 21:50:46 +0000 (21:50 +0000)
commit198046d70680d229ef24528d00478844df924751
treec29329abee79f39be356b5df7491368800709f30
parent3d7b9e7fb152c0a439f4c908efe2a2d95f3a946a
Prevent invalid access of free'd memory if DAHDI channel during an MWI event

In the MWI processing loop, when a valid event occurs the temporary caller ID
information is deallocated.  If a new DAHDI channel is successfully created,
the event is passed up to the analog_ss_thread without error and the loop
exits.  If, however, the DAHDI channel is not created, then the caller ID
struct has been free'd, and the gains reset to their previous level.  This
will almost certainly cause an invalid access to the free'd memory, either
in subsequent calls to callerid_free or calls to callerid_feed.

* Rework the -r361705 patch to better manage the cs and mtd allocated
resources.

* Fixed use of mwimonitoractive flag to be correct if the mwi_thread()
fails to start.
........

Merged revisions 361854 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 361855 from http://svn.asterisk.org/svn/asterisk/branches/10

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@361856 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_dahdi.c