From c5af204de3402eb8ee6a6df40064ac2051a9a5d9 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 10 Apr 2023 13:33:28 -0400 Subject: [PATCH] Prevent FK violation from bad decryption insert. Fixes #12880 --- .../thoughtcrime/securesms/database/RecipientTable.kt | 7 +++++++ .../org/thoughtcrime/securesms/database/ThreadTable.kt | 7 +++++++ .../securesms/service/PendingRetryReceiptManager.java | 9 +++++++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt index 9e651510a1..76a5b79808 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientTable.kt @@ -1684,6 +1684,13 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da return updated } + fun containsId(id: RecipientId): Boolean { + return readableDatabase + .exists(TABLE_NAME) + .where("$ID = ?", id.serialize()) + .run() + } + fun setReportingToken(id: RecipientId, reportingToken: ByteArray) { val values = ContentValues(1).apply { put(REPORTING_TOKEN, reportingToken) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt index dbede0ea21..58ac9a0950 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt @@ -637,6 +637,13 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa } } + fun containsId(threadId: Long): Boolean { + return readableDatabase + .exists(TABLE_NAME) + .where("$ID = ?", threadId) + .run() + } + fun getFilteredConversationList(filter: List, unreadOnly: Boolean): Cursor? { if (filter.isEmpty()) { return null diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java b/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java index 12c3654bdf..a19be54cd4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/PendingRetryReceiptManager.java @@ -55,8 +55,13 @@ public final class PendingRetryReceiptManager extends TimedEventManager