diff options
| author | Jeff Sharkey <jsharkey@android.com> | 2020-03-31 21:10:20 -0600 |
|---|---|---|
| committer | Jeff Sharkey <jsharkey@android.com> | 2020-03-31 21:10:22 -0600 |
| commit | b36acbf6a71b01add2ed7b9e7f495125620f1256 (patch) | |
| tree | 83047cf53692eb42d43a3e64bf860310f0731c73 /core/java/android/database/sqlite | |
| parent | c068acb6aeb3d86226f8eaccad7ddee8d4dfd8db (diff) | |
Deep copy arguments to avoid accidental mutation.
Otherwise we'd risk applying different arguments to active versus
future connections.
Bug: 152005629
Test: atest CtsDatabaseTestCases:android.database.sqlite.cts.SQLiteDatabaseTest
Change-Id: I6e83a47d9874825fd14940245412372ef9227e79
Diffstat (limited to 'core/java/android/database/sqlite')
| -rw-r--r-- | core/java/android/database/sqlite/SQLiteDatabase.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java index 24ac1527779e..7c4692c9e3af 100644 --- a/core/java/android/database/sqlite/SQLiteDatabase.java +++ b/core/java/android/database/sqlite/SQLiteDatabase.java @@ -1066,6 +1066,10 @@ public final class SQLiteDatabase extends SQLiteClosable { throws SQLException { Objects.requireNonNull(sql); + // Copy arguments to ensure that the caller doesn't accidentally change + // the values used by future connections + bindArgs = DatabaseUtils.deepCopyOf(bindArgs); + synchronized (mLock) { throwIfNotOpenLocked(); |
