]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix crash in mod_fifo when deleting a node when its in use
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 14 Sep 2012 19:25:15 +0000 (14:25 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 14 Sep 2012 19:25:20 +0000 (14:25 -0500)
src/mod/applications/mod_fifo/mod_fifo.c

index 2ef5c7fca9a13f454de68d436eaa344b7bfe8ce6..f500c4683afad9986ba93d3e758c5f16974c4124 100644 (file)
@@ -1224,10 +1224,15 @@ static void *SWITCH_THREAD_FUNC ringall_thread_run(switch_thread_t *thread, void
        node_name = cbh->rows[0]->node_name;
 
        switch_mutex_lock(globals.mutex);
-       node = switch_core_hash_find(globals.fifo_hash, node_name);
-       switch_thread_rwlock_rdlock(node->rwlock);
+       if ((node = switch_core_hash_find(globals.fifo_hash, node_name))) {
+               switch_thread_rwlock_rdlock(node->rwlock);
+       }
        switch_mutex_unlock(globals.mutex);
 
+       if (!node) {
+               goto end;
+       }
+
        for (i = 0; i < cbh->rowcount; i++) {
                struct call_helper *h = cbh->rows[i];