res_config_sqlite3: Fix crash when loading with invalid config
authorSean Bright <sean.bright@gmail.com>
Wed, 15 Feb 2017 17:55:19 +0000 (12:55 -0500)
committerSean Bright <sean.bright@gmail.com>
Sat, 18 Feb 2017 18:19:37 +0000 (12:19 -0600)
When ast_config_load() fails with CONFIG_STATUS_FILEINVALID, it has
already destroyed the ast_config struct for us. Trying to do it again
results in a crash.

Change-Id: If6a5c0ca718ad428e01a1fb25beb209a9ac18bc6

res/res_config_sqlite3.c

index b5c70ec..f2a6b00 100644 (file)
@@ -1125,6 +1125,8 @@ static int parse_config(int reload)
        if (config == CONFIG_STATUS_FILEMISSING || config == CONFIG_STATUS_FILEINVALID) {
                ast_log(LOG_ERROR, "%s config file '%s'\n",
                        config == CONFIG_STATUS_FILEMISSING ? "Missing" : "Invalid", config_filename);
+               ast_mutex_unlock(&config_lock);
+               return 0;
        } else {
                const char *cat;
                struct realtime_sqlite3_db *db;