From 1dafeafef783f3987ea86c1263dfde01f465349f Mon Sep 17 00:00:00 2001 From: Tom Poole Date: Mon, 20 Nov 2017 13:37:35 +0000 Subject: [PATCH] MacOS: Fixed some integer overflow issues when loading large images --- .../juce_graphics/native/juce_mac_CoreGraphicsContext.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm index 4de9851f61..a847a1fdd5 100644 --- a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm +++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm @@ -36,7 +36,7 @@ public: pixelStride = format == Image::RGB ? 3 : ((format == Image::ARGB) ? 4 : 1); lineStride = (pixelStride * jmax (1, width) + 3) & ~3; - imageData.allocate ((size_t) (lineStride * jmax (1, height)), clearImage); + imageData.allocate ((size_t) lineStride * (size_t) jmax (1, height), clearImage); CGColorSpaceRef colourSpace = (format == Image::SingleChannel) ? CGColorSpaceCreateDeviceGray() : CGColorSpaceCreateDeviceRGB(); @@ -112,13 +112,13 @@ public: if (mustOutliveSource) { - CFDataRef data = CFDataCreate (0, (const UInt8*) srcData.data, (CFIndex) (srcData.lineStride * srcData.height)); + CFDataRef data = CFDataCreate (0, (const UInt8*) srcData.data, (CFIndex) ((size_t) srcData.lineStride * (size_t) srcData.height)); provider = CGDataProviderCreateWithCFData (data); CFRelease (data); } else { - provider = CGDataProviderCreateWithData (0, srcData.data, (size_t) (srcData.lineStride * srcData.height), 0); + provider = CGDataProviderCreateWithData (0, srcData.data, (size_t) srcData.lineStride * (size_t) srcData.height, 0); } CGImageRef imageRef = CGImageCreate ((size_t) srcData.width,