]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
mod_skinny: silence CID 1320795 by rearranging mutex aquisition, negligible impact
authorNathan Neulinger <nneul@neulinger.org>
Wed, 6 Jan 2016 17:23:52 +0000 (11:23 -0600)
committerNathan Neulinger <nneul@neulinger.org>
Wed, 6 Jan 2016 17:23:52 +0000 (11:23 -0600)
src/mod/endpoints/mod_skinny/mod_skinny.c

index 25b8f6ff8be048c2cad63068d54a3088b11de4b3..4d2ad25bddcb458ab8f12189be36db661095a70a 100644 (file)
@@ -2725,12 +2725,18 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_skinny_load)
                return SWITCH_STATUS_TERM;
        }
        switch_mutex_init(&globals.mutex, SWITCH_MUTEX_NESTED, globals.pool);
+
+       switch_mutex_lock(globals.mutex);
        switch_core_hash_init(&globals.profile_hash);
        globals.running = 1;
        globals.auto_restart = SWITCH_TRUE;
+       switch_mutex_unlock(globals.mutex);
 
+       /* load_skinny_config does it's own locking */
        load_skinny_config();
 
+       switch_mutex_lock(globals.mutex);
+
        /* at least one profile */
        if (switch_core_hash_empty( globals.profile_hash)) {
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "No profile found!\n");
@@ -2794,7 +2800,6 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_skinny_load)
        skinny_api_register(module_interface);
 
        /* launch listeners */
-       switch_mutex_lock(globals.mutex);
        for (hi = switch_core_hash_first(globals.profile_hash); hi; hi = switch_core_hash_next(&hi)) {
                void *val;
                skinny_profile_t *profile;