]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_stasis_device_state: Fix refcounting error. 96/2196/1
authorMark Michelson <mmichelson@digium.com>
Thu, 4 Feb 2016 17:39:10 +0000 (11:39 -0600)
committerMark Michelson <mmichelson@digium.com>
Thu, 4 Feb 2016 18:05:52 +0000 (12:05 -0600)
commit82e2938fa873f9d680b7924ac5c9822fd1995a84
treee0025184bbeee6ed1048d4cc76894fc806358f46
parente89114c1bec1fde828524c4858cebd5b412bd2b5
res_stasis_device_state: Fix refcounting error.

Device state subscription lifetimes were governed by when the
subscription was established and unsubscribed from. However, it is
possible that at the time of unsubscription, there could be device state
events still in flight. When those device state events occur, the device
state callback could attempt to dereference a freed pointer. Crash.

This change ensures that the lifetime of the device state subscription
does not end until the underlying stasis subscription has confirmed that
its final message has been sent.

Change-Id: I25a0f1472894c1a562252fb7129671478e25e9b2
res/res_stasis_device_state.c