Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5666170c authored by Vasu Nori's avatar Vasu Nori
Browse files

when corruption occurs, not clsing the db is casuing stack overflow

due to a bug in DefaultDatabaseErrorHandler, if the corruption is
so bad that the list of attached databases can't even be retrieved,
then database is not closed in DefaultDatabaseErrorHandler,
this causes the corrupted file to remain on disk.
this causes corruption detection to occur forever until the stack
overflows.

Change-Id: I9896bee220231cbde0b1620ad0a617420424967c
parent ef7fa7bc
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -57,6 +57,10 @@ public final class DefaultDatabaseErrorHandler implements DatabaseErrorHandler {
            // before that, get the attached database list first.
            try {
                attachedDbs = dbObj.getAttachedDbs();
            } catch (SQLiteException e) {
                /* ignore */
            }
            try {
                dbObj.close();
            } catch (SQLiteException e) {
                /* ignore */
@@ -83,7 +87,8 @@ public final class DefaultDatabaseErrorHandler implements DatabaseErrorHandler {
        try {
            new File(fileName).delete();
        } catch (Exception e) {
            /* ignore */
            /* print warning and ignore exception */
            Log.w(TAG, "delete failed: " + e.getMessage());
        }
    }
}