diff options
author | Kinsey Moore <kmoore@digium.com> | 2014-04-11 12:43:34 +0000 |
---|---|---|
committer | Kinsey Moore <kmoore@digium.com> | 2014-04-11 12:43:34 +0000 |
commit | d6e2c50058de41eb80d7abc27786825cb65ddccf (patch) | |
tree | 1070269c9ad4edfc57a420b648c75a5408f4372f /res | |
parent | f65dd23bf4fbb1cb909755ac3d36fc6aa9f709bb (diff) |
bridging: Ensure locking during snapshot creation
While the vast majority of bridge snapshot creation is locked properly,
there are currently some instances that are not. This adds the missing
locking to ensure bridge state is not malleable during snapshot
creation.
(closes issue ASTERISK-22904)
Review: https://reviewboard.asterisk.org/r/3415/
Reported by: Matt Jordan
........
Merged revisions 412193 from http://svn.asterisk.org/svn/asterisk/branches/12
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@412194 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r-- | res/ari/resource_bridges.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/res/ari/resource_bridges.c b/res/ari/resource_bridges.c index bb39ad672..d78601fae 100644 --- a/res/ari/resource_bridges.c +++ b/res/ari/resource_bridges.c @@ -746,7 +746,10 @@ void ast_ari_bridges_create(struct ast_variable *headers, return; } + ast_bridge_lock(bridge); snapshot = ast_bridge_snapshot_create(bridge); + ast_bridge_unlock(bridge); + if (!snapshot) { ast_ari_response_error( response, 500, "Internal Error", @@ -792,7 +795,10 @@ void ast_ari_bridges_create_or_update_with_id(struct ast_variable *headers, return; } + ast_bridge_lock(bridge); snapshot = ast_bridge_snapshot_create(bridge); + ast_bridge_unlock(bridge); + if (!snapshot) { ast_ari_response_error( response, 500, "Internal Error", |