From ba9c93d046870c49af7eaadb32b2c0d2776f296c Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Mon, 29 Jan 2024 10:34:51 +0100 Subject: [PATCH] consistently use FileHelper.openInputStreamSafe to resolve input streams --- .../keyimport/processing/ImportKeysListLoader.java | 2 +- .../keychain/operations/BackupOperation.java | 3 ++- .../keychain/operations/InputDataOperation.java | 5 +++-- .../keychain/pgp/PgpDecryptVerifyOperation.java | 2 +- .../keychain/ui/SettingsSmartPGPAuthorityFragment.java | 3 ++- .../keychain/ui/token/PublicKeyRetriever.java | 3 ++- .../org/sufficientlysecure/keychain/util/FileHelper.java | 8 ++++---- .../keychain/util/FileHelperLollipop.java | 6 +++--- 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java index ef79ce671..dd4705cf0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/keyimport/processing/ImportKeysListLoader.java @@ -141,7 +141,7 @@ public class ImportKeysListLoader if (ls.mKeyBytes != null) { inputData = new InputData(new ByteArrayInputStream(ls.mKeyBytes), ls.mKeyBytes.length); } else if (ls.mDataUri != null) { - InputStream inputStream = mContext.getContentResolver().openInputStream(ls.mDataUri); + InputStream inputStream = FileHelper.openInputStreamSafe(mContext.getContentResolver(), ls.mDataUri); long length = FileHelper.getFileSize(mContext, ls.mDataUri, -1); inputData = new InputData(inputStream, length); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java index 5a9af2ed8..d27b38c26 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BackupOperation.java @@ -57,6 +57,7 @@ import org.sufficientlysecure.keychain.service.BackupKeyringParcel; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.util.CountingOutputStream; +import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.InputData; import org.sufficientlysecure.keychain.util.Numeric9x4PassphraseUtil; import org.sufficientlysecure.keychain.util.Passphrase; @@ -175,7 +176,7 @@ public class BackupOperation extends BaseOperation { } PgpSignEncryptData pgpSignEncryptData = builder.build(); - InputStream inStream = mContext.getContentResolver().openInputStream(plainUri); + InputStream inStream = FileHelper.openInputStreamSafe(mContext.getContentResolver(), plainUri); String filename; long[] masterKeyIds = backupInput.getMasterKeyIds(); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java index 8936d05b5..609b81060 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/InputDataOperation.java @@ -55,6 +55,7 @@ import org.sufficientlysecure.keychain.provider.TemporaryFileProvider; import org.sufficientlysecure.keychain.service.InputDataParcel; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; import org.sufficientlysecure.keychain.util.CharsetVerifier; +import org.sufficientlysecure.keychain.util.FileHelper; /** This operation deals with input data, trying to determine its type as it goes. @@ -381,7 +382,7 @@ public class InputDataOperation extends BaseOperation { try { // open current uri for input - InputStream in = mContext.getContentResolver().openInputStream(currentInputUri); + InputStream in = FileHelper.openInputStreamSafe(mContext.getContentResolver(), currentInputUri); parser.parse(in); if (mSignedDataUri != null) { @@ -394,7 +395,7 @@ public class InputDataOperation extends BaseOperation { // the actual content is the signed data now (and will be passed verbatim, if parsing fails) currentInputUri = mSignedDataUri; - in = mContext.getContentResolver().openInputStream(currentInputUri); + in = FileHelper.openInputStreamSafe(mContext.getContentResolver(), currentInputUri); // reset signed data result, to indicate to the parser that it is in the inner part mSignedDataResult = null; parser.parse(in); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java index d5f4ba42f..22509830d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpDecryptVerifyOperation.java @@ -109,7 +109,7 @@ public class PgpDecryptVerifyOperation extends BaseOperation