From 00ecaa8aec77ea9bd67a97fd76a37d0d82e54d5f Mon Sep 17 00:00:00 2001 From: James Ide Date: Tue, 17 Feb 2015 14:55:07 -0800 Subject: [PATCH] [Images] Bail out when GIF data is in unexpected format instead of crashing When the GIF data is not a string nor NSData, `imageSource` is some unknown value set to whatever memory was on the stack. Calling `CGImageSourceGetType` on it has undefined behavior, and if it makes through to the CFRelease (maybe because it is NULL) then CFRelease will crash. This fixes a clang warning. --- ReactKit/Base/RCTConvert.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ReactKit/Base/RCTConvert.m b/ReactKit/Base/RCTConvert.m index 752d03ced0bde9..ab79cd8617742b 100644 --- a/ReactKit/Base/RCTConvert.m +++ b/ReactKit/Base/RCTConvert.m @@ -446,6 +446,9 @@ + (CAKeyframeAnimation *)GIF:(id)json } imageSource = CGImageSourceCreateWithData((CFDataRef)data, NULL); + } else { + RCTLogMustFix(@"Expected NSString or NSData for GIF, received %@: %@", [json class], json); + return nil; } if (!UTTypeConformsTo(CGImageSourceGetType(imageSource), kUTTypeGIF)) {