diff --git a/player/db/update.c b/player/db/update.c index 1cf6848d562cfb15692607b834265fa15900111d..29b60ad944aaaa91fd15943db10e6e05c22ea932 100644 --- a/player/db/update.c +++ b/player/db/update.c @@ -138,10 +138,14 @@ static int update_legacy_file(sqlite3 * db, const char * filename, size_t prefix } status_code = sqlite3_step(stmt); + if (status_code != SQLITE_DONE) { - // TODO handle SQLITE_BUSY (should rollback) serror(db, "Failed to execute insert statement"); + + if (status_code == SQLITE_BUSY && sqlite3_exec(db, "ROLLBACK;", 0, 0, 0) != SQLITE_OK) + { serror(db, "Failed to rollback transaction, database is corrupted"); } + goto error; }