From d2bf6696b04203cc84b183331f7ded9e4c34dee0 Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 26 Nov 2023 17:09:06 +0100 Subject: [PATCH] Prevent Fluid Attacks triggering on ROOM temp file --- app/src/main/java/androidx/room/SQLiteCopyOpenHelper.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/androidx/room/SQLiteCopyOpenHelper.java b/app/src/main/java/androidx/room/SQLiteCopyOpenHelper.java index f7b856873d..300145cde3 100644 --- a/app/src/main/java/androidx/room/SQLiteCopyOpenHelper.java +++ b/app/src/main/java/androidx/room/SQLiteCopyOpenHelper.java @@ -206,8 +206,12 @@ class SQLiteCopyOpenHelper implements SupportSQLiteOpenHelper, DelegatingOpenHel // An intermediate file is used so that we never end up with a half-copied database file // in the internal directory. - File intermediateFile = File.createTempFile( - "room-copy-helper", ".tmp", mContext.getCacheDir()); + //File intermediateFile = File.createTempFile( + // "room-copy-helper", ".tmp", mContext.getCacheDir()); + File dir = new File(mContext.getFilesDir(), "room"); + if (!dir.exists() && !dir.mkdirs()) + throw new IOException("Failed to create=" + dir); + File intermediateFile = new File(dir, "room-copy-helper.tmp"); intermediateFile.deleteOnExit(); FileChannel output = new FileOutputStream(intermediateFile).getChannel(); FileUtil.copy(input, output);