From 2f799323beba5fa74401dc9cd5e0c296ac9ba29c Mon Sep 17 00:00:00 2001 From: YYDD <615689375@qq.com> Date: Mon, 12 Mar 2018 15:30:21 +0800 Subject: [PATCH] fix yykeychain leaks --- YYKit/Utility/YYKeychain.m | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/YYKit/Utility/YYKeychain.m b/YYKit/Utility/YYKeychain.m index 16536c49..f4b28678 100644 --- a/YYKit/Utility/YYKeychain.m +++ b/YYKit/Utility/YYKeychain.m @@ -434,10 +434,14 @@ + (YYKeychainItem *)selectOneItem:(YYKeychainItem *)item error:(NSError **)error status = SecItemCopyMatching((__bridge CFDictionaryRef)query, &result); if (status != errSecSuccess) { if (error) *error = [[self class] errorWithCode:status]; + if (result) { + CFRelease(result); + } + return nil; + } + if (!result) { return nil; } - if (!result) return nil; - NSDictionary *dic = nil; if (CFGetTypeID(result) == CFDictionaryGetTypeID()) { dic = (__bridge NSDictionary *)(result); @@ -445,6 +449,7 @@ + (YYKeychainItem *)selectOneItem:(YYKeychainItem *)item error:(NSError **)error dic = [(__bridge NSArray *)(result) firstObject]; if (![dic isKindOfClass:[NSDictionary class]]) dic = nil; } + CFRelease(result); if (!dic.count) return nil; return [[YYKeychainItem alloc] initWithDic:dic]; }