diff --git a/SignalMessaging/utils/OWSAvatarBuilder.m b/SignalMessaging/utils/OWSAvatarBuilder.m index 08f3e6f225..60b33a0e79 100644 --- a/SignalMessaging/utils/OWSAvatarBuilder.m +++ b/SignalMessaging/utils/OWSAvatarBuilder.m @@ -172,6 +172,7 @@ typedef void (^OWSAvatarDrawBlock)(CGContextRef context); (id)[UIColor colorWithWhite:0.f alpha:0.15f].CGColor, ], gradientLocations); + CFRelease(colorspace); if (!gradient) { return nil; } diff --git a/SignalServiceKit/src/Security/OWSHTTPSecurityPolicy.m b/SignalServiceKit/src/Security/OWSHTTPSecurityPolicy.m index 72ea99e57d..6d9e2df8b0 100644 --- a/SignalServiceKit/src/Security/OWSHTTPSecurityPolicy.m +++ b/SignalServiceKit/src/Security/OWSHTTPSecurityPolicy.m @@ -1,5 +1,5 @@ // -// Copyright (c) 2019 Open Whisper Systems. All rights reserved. +// Copyright (c) 2020 Open Whisper Systems. All rights reserved. // #import "OWSHTTPSecurityPolicy.h" @@ -46,11 +46,13 @@ NS_ASSUME_NONNULL_BEGIN } + (NSData *)certificateDataForService:(NSString *)service { - SecCertificateRef certRef = [self certificateForService:service]; - return (__bridge_transfer NSData *)SecCertificateCopyData(certRef); + SecCertificateRef certRef = [self newCertificateForService:service]; + NSData *result = (__bridge_transfer NSData *)SecCertificateCopyData(certRef); + CFRelease(certRef); + return result; } -+ (SecCertificateRef)certificateForService:(NSString *)service ++ (SecCertificateRef)newCertificateForService:(NSString *)service CF_RETURNS_RETAINED { NSData *certificateData = [self dataFromCertificateFileForService:service]; return SecCertificateCreateWithData(NULL, (__bridge CFDataRef)(certificateData)); diff --git a/SignalServiceKit/src/Util/NSData+Image.m b/SignalServiceKit/src/Util/NSData+Image.m index 871a63adf8..aca450a59e 100644 --- a/SignalServiceKit/src/Util/NSData+Image.m +++ b/SignalServiceKit/src/Util/NSData+Image.m @@ -528,6 +528,7 @@ typedef struct { } UIImage *uiImage = [UIImage imageWithCGImage:cgImage]; + CFRelease(cgImage); return uiImage; }