From 44abe214d24f772b9d66a96d592aa15c17c7c429 Mon Sep 17 00:00:00 2001
From: Sean Bright <sean.bright@gmail.com>
Date: Wed, 15 Feb 2017 12:55:19 -0500
Subject: [PATCH] res_config_sqlite3: Fix crash when loading with invalid
 config

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 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/res/res_config_sqlite3.c b/res/res_config_sqlite3.c
index b5c70ec2da..f2a6b00dbb 100644
--- a/res/res_config_sqlite3.c
+++ b/res/res_config_sqlite3.c
@@ -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;
-- 
GitLab