]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7761 [core] fix shutdown races running api commands during shutdown
authorBrian West <brian@freeswitch.org>
Thu, 2 Jul 2015 15:08:54 +0000 (10:08 -0500)
committerBrian West <brian@freeswitch.org>
Thu, 2 Jul 2015 15:08:54 +0000 (10:08 -0500)
src/switch_loadable_module.c
src/switch_time.c

index 193eb8fce0448fe4f1e12e15b5b83902d780ef7e..b49af923c49f5d687a697d385971da796aac66e9 100644 (file)
@@ -2172,8 +2172,8 @@ SWITCH_DECLARE(switch_codec_interface_t *) switch_loadable_module_get_codec_inte
 
 #define HASH_FUNC(_kind_) SWITCH_DECLARE(switch_##_kind_##_interface_t *) switch_loadable_module_get_##_kind_##_interface(const char *name)    \
        {                                                                                                                                       \
-               switch_##_kind_##_interface_t *i;                                                               \
-               if ((i = switch_core_hash_find_locked(loadable_modules._kind_##_hash, name, loadable_modules.mutex))) { \
+               switch_##_kind_##_interface_t *i = NULL;                                                                \
+               if (loadable_modules._kind_##_hash && (i = switch_core_hash_find_locked(loadable_modules._kind_##_hash, name, loadable_modules.mutex))) {       \
                        PROTECT_INTERFACE(i);                                                                           \
                }                                                                                                                               \
                return i;                                                                                                               \
index 7642be10e2d025d133e26f21cbe64157184973bb..b539d9be10e72ff067dc41f7f276b1b5ed58ef8b 100644 (file)
@@ -1362,7 +1362,11 @@ SWITCH_DECLARE(const char *) switch_lookup_timezone(const char *tz_name)
 {
        char *value = NULL;
 
-       if (tz_name && (value = switch_core_hash_find(TIMEZONES_LIST.hash, tz_name)) == NULL) {
+       if (zstr(tz_name) || !TIMEZONES_LIST.hash) {
+               return NULL;
+       }
+       
+       if ((value = switch_core_hash_find(TIMEZONES_LIST.hash, tz_name)) == NULL) {
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Timezone '%s' not found!\n", tz_name);
        }