From 0278882c3067a7051d1439bf55a22e8485301eac Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 30 Mar 2022 16:17:15 -0400 Subject: [PATCH] Prevent possible crash while reading contacts cursor. --- .../java/org/signal/contacts/SystemContactsRepository.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt b/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt index 294cc9f36..a6a715a34 100644 --- a/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt +++ b/contacts/lib/src/main/java/org/signal/contacts/SystemContactsRepository.kt @@ -579,11 +579,11 @@ object SystemContactsRepository { } override fun hasNext(): Boolean { - return !cursor.isAfterLast + return !cursor.isAfterLast && cursor.position >= 0 } override fun next(): ContactDetails { - if (cursor.isAfterLast) { + if (cursor.isAfterLast || cursor.position < 0) { throw NoSuchElementException() } @@ -591,7 +591,7 @@ object SystemContactsRepository { val phoneDetails: List = readAllPhones(cursor, lookupKey) val structuredName: StructuredName? = readStructuredName(cursor, lookupKey) - while (!cursor.isAfterLast && cursor.getLookupKey() == lookupKey) { + while (!cursor.isAfterLast && cursor.position >= 0 && cursor.getLookupKey() == lookupKey) { cursor.moveToNext() }