From 74b78eb5dc1049a6d8a11a5af6bd609b34ab0639 Mon Sep 17 00:00:00 2001 From: therehello Date: Sat, 18 Jul 2026 23:02:37 +0800 Subject: [PATCH] Fix the leak of RGBA buffer when WebPDecode failed Also fix the unbalanced #if SD_MAC braces which broke the macOS test compile. --- SDWebImageWebPCoder/Classes/SDImageWebPCoder.m | 1 + Tests/SDWebImageWebPCoderTests.m | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/SDWebImageWebPCoder/Classes/SDImageWebPCoder.m b/SDWebImageWebPCoder/Classes/SDImageWebPCoder.m index 8e51a9e..7c5841d 100644 --- a/SDWebImageWebPCoder/Classes/SDImageWebPCoder.m +++ b/SDWebImageWebPCoder/Classes/SDImageWebPCoder.m @@ -627,6 +627,7 @@ - (nullable CGImageRef)sd_createWebpImageWithData:(WebPData)webpData colorSpace: // Decode the WebP image data into a RGBA value array if (WebPDecode(webpData.bytes, webpData.size, &config) != VP8_STATUS_OK) { + WebPFree(rgba); return nil; } diff --git a/Tests/SDWebImageWebPCoderTests.m b/Tests/SDWebImageWebPCoderTests.m index f89bcfa..fe0edb7 100644 --- a/Tests/SDWebImageWebPCoderTests.m +++ b/Tests/SDWebImageWebPCoderTests.m @@ -262,10 +262,10 @@ - (void)testWebPDecodeDoesNotTriggerCACopyImage { XCTAssertEqual(colorspace, NSScreen.mainScreen.colorSpace.CGColorSpace, @"Color space is not screen"); #else XCTAssertEqual(colorspaceName, (__bridge NSString *)kCGColorSpaceSRGB, @"Color space is not sRGB"); +#endif } else { // Fallback on earlier versions } -#endif } - (void)testEncodingSettings {