diff options
author | Mark Michelson <mmichelson@digium.com> | 2008-09-19 15:43:28 +0000 |
---|---|---|
committer | Mark Michelson <mmichelson@digium.com> | 2008-09-19 15:43:28 +0000 |
commit | 02a0855e57755964cd6c95cc4007cc99b1923525 (patch) | |
tree | 5c58535d7acba9e1ea944e6942f5d0df00edd05d /channels/chan_agent.c | |
parent | 12073c2a96becf7a0264a69770db4650dd82708e (diff) |
We should only unsubscribe to the device state event
subscription if we have previously subscribed. Otherwise
a segfault will occur.
(closes issue #13476)
Reported by: jonnt
Patches:
13476.patch uploaded by putnopvut (license 60)
Tested by: jonnt
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@143609 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_agent.c')
-rw-r--r-- | channels/chan_agent.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c index 83dbd38e4..f84c0f011 100644 --- a/channels/chan_agent.c +++ b/channels/chan_agent.c @@ -2535,7 +2535,9 @@ static int unload_module(void) /* First, take us out of the channel loop */ ast_channel_unregister(&agent_tech); /* Delete devicestate subscription */ - agent_devicestate_sub = ast_event_unsubscribe(agent_devicestate_sub); + if (agent_devicestate_sub) { + agent_devicestate_sub = ast_event_unsubscribe(agent_devicestate_sub); + } /* Unregister dialplan functions */ ast_custom_function_unregister(&agent_function); /* Unregister CLI commands */ |