config: Fix locking for extconfig reload.
authorCorey Farrell <git@cfware.com>
Mon, 19 Feb 2018 08:49:45 +0000 (03:49 -0500)
committerCorey Farrell <git@cfware.com>
Mon, 19 Feb 2018 09:09:02 +0000 (03:09 -0600)
Expand locking to include full reload process for extconfig to ensure
nothing can read the config mappings between clearing and reloading.

Change-Id: I378316bad04f1b599ea82d0fef62b8978a644b92

main/config.c

index 3fbbacf..118b958 100644 (file)
@@ -2839,8 +2839,6 @@ static void clear_config_maps(void)
 {
        struct ast_config_map *map;
 
-       SCOPED_MUTEX(lock, &config_lock);
-
        while (config_maps) {
                map = config_maps;
                config_maps = config_maps->next;
@@ -2894,6 +2892,7 @@ int read_config_maps(void)
        char *driver, *table, *database, *textpri, *stringp, *tmp;
        struct ast_flags flags = { CONFIG_FLAG_NOREALTIME };
        int pri;
+       SCOPED_MUTEX(lock, &config_lock);
 
        clear_config_maps();