diff --git a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java index 50f9d5dfe..46ff6977f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -73,6 +73,7 @@ import org.thoughtcrime.securesms.sharing.ShareActivity; import org.thoughtcrime.securesms.util.AttachmentUtil; import org.thoughtcrime.securesms.util.DateUtils; import org.thoughtcrime.securesms.util.FullscreenHelper; +import org.thoughtcrime.securesms.util.MediaUtil; import org.thoughtcrime.securesms.util.SaveAttachmentTask; import org.thoughtcrime.securesms.util.SaveAttachmentTask.Attachment; import org.thoughtcrime.securesms.util.StorageUtil; @@ -534,7 +535,7 @@ public final class MediaPreviewActivity extends PassphraseRequiredActivity } public static boolean isContentTypeSupported(final String contentType) { - return contentType != null && (contentType.startsWith("image/") || contentType.startsWith("video/")); + return MediaUtil.isImageType(contentType) || MediaUtil.isVideoType(contentType); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java index 23183e3c9..9684e3ce5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MediaUtil.java @@ -293,7 +293,7 @@ public class MediaUtil { return false; } - return contentType.startsWith("image/") || + return (contentType.startsWith("image/") && !contentType.equals("image/svg+xml")) || contentType.equals(MediaStore.Images.Media.CONTENT_TYPE); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileDescriptorProxy.java b/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileDescriptorProxy.java index 3f238678e..0d0e5ba8f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileDescriptorProxy.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/MemoryFileDescriptorProxy.java @@ -71,6 +71,10 @@ final class MemoryFileDescriptorProxy { try { InputStream inputStream = memoryFile.getInputStream(); if(inputStream.skip(offset) != offset){ + if (offset > memoryFile.length()) { + throw new ErrnoException("onRead", OsConstants.EIO); + } + throw new AssertionError(); } return inputStream.read(data, 0, size);