/* LCOV_EXCL_STOP */
/* LCOV_EXCL_START */
-static int __recover_corrupted_db(sqlite3 *db)
+static int __recover_corrupted_db()
{
int ret = SHORTCUT_ERROR_NONE;
int sql_ret;
char *errmsg = NULL;
+ sqlite3 *db = NULL;
SHORTCUT_INFO("DB is corrupted, start to recover corrupted db");
- if (db)
- sqlite3_close(db);
- unlink(_db_path);
+ unlink(_db_path);
sql_ret = sqlite3_open_v2(_db_path, &db,
SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE,
NULL);
out:
if (errmsg)
sqlite3_free(errmsg);
+ if (db)
+ sqlite3_close_v2(db);
return ret;
}
}
out:
- if (sql_ret == SQLITE_CORRUPT || sql_ret == SQLITE_NOTADB || is_db_corrupted)
- ret = __recover_corrupted_db(db);
if (errmsg)
sqlite3_free(errmsg);
if (db)
- sqlite3_close(db);
+ sqlite3_close_v2(db);
+ if (sql_ret == SQLITE_CORRUPT || sql_ret == SQLITE_NOTADB || is_db_corrupted)
+ ret = __recover_corrupted_db();
return ret;
}