Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MOB - 6865] - Keychain null crash fix #635

Merged
merged 3 commits into from
Oct 3, 2023

Conversation

Ayyanchira
Copy link
Member

@Ayyanchira Ayyanchira commented Sep 21, 2023

🔹 Jira Ticket(s) if any

✏️ Description

  • Handles condition where IterableKeychain creation returns null to Iterable API. SDK will continue to process without crashing.
    There will be no email fetched from sharedPreferences in this rare case. No email will be persisted and the app will have to setEmail/setUserId on every app session for it to have email in memory than having it persisted for consequent app sessions

  • Fixed indentation on IterableKeychain file. Using cmd+l on Android Studio

  • Added method description in IterableConfig class so developers have more context on what setEncryptionEnforced means

  • getKeychain is now annotated @nullable for future kotlin migration purpose

Fixes - #616
Fixes - #631

- Handles condition where IterableKeychain creation returns null to Iterable API.
SDK will continue to process without crashing.
There will be no email fetched from sharedPreferences in this rare case. No email will be persisted and the app will have to setEmail/setUserId on every app session for it to have email in memory than having it persisted for consequent app sessions

- Fixed indentation on IterableKeychain file. Using cmd+l on Android Studio

- Added method description in IterableConfig class so developers have more context on what `setEncryptionEnforced` means

- getKeychain is now annotated @nullable for future kotlin migration purpose
Comment on lines 120 to 125
editor.remove(IterableConstants.SHARED_PREFS_USERID_KEY)
IterableLogger.v(TAG,
IterableLogger.v(
TAG,
"UPDATED: migrated userId from SharedPreferences to IterableKeychain"
)
} else if (sharedPrefsUserId != null) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cosmetic changes

1. Checking for Throwable which will collect both Exception and Error if at all Security library is crashing with a Error and not exception.
2. Updating the dependency to use latest alpha version. Alpha version 5 also seems to fix race condition during creation process.
Reference - https://developer.android.com/jetpack/androidx/releases/security#1.1.0-alpha05
3. Added some warning logs if this situation arrives so developers can take some action if it occurs during debugging
Copy link
Contributor

@davidtruong davidtruong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LFTM

@Ayyanchira Ayyanchira merged commit eddcc65 into encryption Oct 3, 2023
1 of 4 checks passed
@Ayyanchira Ayyanchira deleted the MOB-6865-Keychain-null-crash-fix branch October 3, 2023 22:35
@baole baole mentioned this pull request Nov 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants