From a5a53c52deb55faef717f0472eda672a7e916305 Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Mon, 23 Mar 2020 15:21:31 +0100 Subject: [PATCH] db: use goto in error case --- src/database.c | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/src/database.c b/src/database.c index 4e28813b..511a4921 100644 --- a/src/database.c +++ b/src/database.c @@ -102,43 +102,32 @@ log_database_init(ProfAccount *account) char *err_msg; char *query = "CREATE TABLE IF NOT EXISTS `ChatLogs` ( `cl_id` INTEGER PRIMARY KEY, `jid` TEXT NOT NULL, `resource` TEXT, `message` TEXT, `timestamp` TEXT, `is_muc` INTEGER, `stanza_id` TEXT)"; if( SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) { - if (err_msg) { - log_error("SQLite error: %s", err_msg); - sqlite3_free(err_msg); - } else { - log_error("Unknown SQLite error"); - } - free(filename); - return FALSE; + goto out; } query = "CREATE TABLE IF NOT EXISTS `DbVersion` ( `dv_id` INTEGER PRIMARY KEY, `version` INTEGER UNIQUE)"; if( SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) { - if (err_msg) { - log_error("SQLite error: %s", err_msg); - sqlite3_free(err_msg); - } else { - log_error("Unknown SQLite error"); - } - free(filename); - return FALSE; + goto out; } query = "INSERT OR IGNORE INTO `DbVersion` (`version`) VALUES('1')"; if( SQLITE_OK != sqlite3_exec(g_chatlog_database, query, NULL, 0, &err_msg)) { - if (err_msg) { - log_error("SQLite error: %s", err_msg); - sqlite3_free(err_msg); - } else { - log_error("Unknown SQLite error"); - } - free(filename); - return FALSE; + goto out; } log_debug("Initialized SQLite database: %s", filename); free(filename); return TRUE; + +out: + if (err_msg) { + log_error("SQLite error: %s", err_msg); + sqlite3_free(err_msg); + } else { + log_error("Unknown SQLite error"); + } + free(filename); + return FALSE; } void