Fix path escaping issues.

Acknowledgment to Mouad & Ostorlab team for bringing this to our attention.
This commit is contained in:
Cody Henthorne
2025-06-05 15:33:16 -04:00
committed by Greyson Parrelli
parent 2767e298c4
commit efa9dd6ec3
2 changed files with 3 additions and 2 deletions

View File

@@ -349,7 +349,7 @@ public class BlobProvider {
private static @Nullable String getId(@NonNull Uri uri) {
if (isAuthority(uri)) {
return uri.getPathSegments().get(ID_PATH_SEGMENT);
return Uri.encode(uri.getPathSegments().get(ID_PATH_SEGMENT));
}
return null;
}
@@ -422,7 +422,7 @@ public class BlobProvider {
}
private static @NonNull String buildFileName(@NonNull String id) {
return id + ".blob";
return Uri.encode(id) + ".blob";
}
private static @NonNull String getDirectory(@NonNull StorageType storageType) {

View File

@@ -72,6 +72,7 @@ class ShareRepository(context: Context) {
@WorkerThread
private fun resolve(externalMultiShare: UnresolvedShareData.ExternalMultiShare): ResolvedShareData {
val mimeTypes: Map<Uri, String> = externalMultiShare.uris
.filter { UriUtil.isValidExternalUri(appContext, it) }
.associateWith { uri -> getMimeType(appContext, uri, null) }
.filterValues {
MediaUtil.isImageType(it) || MediaUtil.isVideoType(it)