]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_stasis_device_state: Fix refcounting error. 97/2197/3
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:42:39 +0000 (12:42 -0600)
commitbffd954a635ce777f257b55a1060adf31be08511
tree37319a9e67075b2d20e9a9fb222fd966233d0fff
parent9931aa6c6ff8554881f52d83108e9ffada85e184
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