Skip to content
Snippets Groups Projects
  • Richard Mudgett's avatar
    640fbbbe
    features: Fix channel datastore access. · 640fbbbe
    Richard Mudgett authored
    Found as a result of the testsuite tests/callparking test crashing.
    
    Several calls to ast_get_chan_featuremap_config() and
    ast_get_chan_features_xfer_config() did not lock the channel before
    calling so the channel's datastore list was accessed without the lock's
    protection.  Apparently another thread deleted a datastore on the
    channel's list while the crashing thread was walking the list.  Crash at
    0xdeaddead due to MALLOC_DEBUG's memory filler value as a result.
    
    * Add missing channel locks to calls that were not already protected
    as the doxygen for those calls indicates.
    
    Change-Id: Id273b3d305cc616406c353cbc841b2b7655efaa1
    640fbbbe
    History
    features: Fix channel datastore access.
    Richard Mudgett authored
    Found as a result of the testsuite tests/callparking test crashing.
    
    Several calls to ast_get_chan_featuremap_config() and
    ast_get_chan_features_xfer_config() did not lock the channel before
    calling so the channel's datastore list was accessed without the lock's
    protection.  Apparently another thread deleted a datastore on the
    channel's list while the crashing thread was walking the list.  Crash at
    0xdeaddead due to MALLOC_DEBUG's memory filler value as a result.
    
    * Add missing channel locks to calls that were not already protected
    as the doxygen for those calls indicates.
    
    Change-Id: Id273b3d305cc616406c353cbc841b2b7655efaa1