From 463a3235859c110801fce4e49ac2183c29881bb5 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 19 Jun 2018 14:37:42 -0400 Subject: [PATCH] Image content types. --- SignalServiceKit/src/Util/NSData+Image.m | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/SignalServiceKit/src/Util/NSData+Image.m b/SignalServiceKit/src/Util/NSData+Image.m index 7aa873da2..68e055a36 100644 --- a/SignalServiceKit/src/Util/NSData+Image.m +++ b/SignalServiceKit/src/Util/NSData+Image.m @@ -2,8 +2,8 @@ // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // -#import "MIMETypeUtil.h" #import "NSData+Image.h" +#import "MIMETypeUtil.h" typedef NS_ENUM(NSInteger, ImageFormat) { ImageFormat_Unknown, @@ -43,6 +43,9 @@ typedef NS_ENUM(NSInteger, ImageFormat) { // load a .gif with a .png file extension. // // Instead, use the "magic numbers" in the file data to determine the image format. + // + // If the image has a declared MIME type, ensure that agrees with the + // deduced image format. ImageFormat imageFormat = [self ows_guessImageFormat]; switch (imageFormat) { case ImageFormat_Unknown: @@ -50,6 +53,9 @@ typedef NS_ENUM(NSInteger, ImageFormat) { case ImageFormat_Png: return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImagePng]); case ImageFormat_Gif: + if (![self ows_hasValidGifSize]) { + return NO; + } return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImageGif]); case ImageFormat_Tiff: return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImageTiff1] || @@ -60,13 +66,6 @@ typedef NS_ENUM(NSInteger, ImageFormat) { return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImageBmp1] || [mimeType isEqualToString:OWSMimeTypeImageBmp2]); } - if (imageFormat == ImageFormat_Gif) { - return [self ows_hasValidGifSize]; - } else if (imageFormat == ImageFormat_Unknown) { - return NO; - } else { - return YES; - } } - (ImageFormat)ows_guessImageFormat