forked from OSchip/llvm-project
65 lines
1.5 KiB
Objective-C
65 lines
1.5 KiB
Objective-C
|
|
|
|
void test() {
|
|
unsigned int *ptr = 0;
|
|
UInt32 length;
|
|
|
|
SecKeychainItemFreeContent(ptr, &length);
|
|
// warn: trying to free data which has not been allocated
|
|
}
|
|
|
|
void test() {
|
|
unsigned int *ptr = 0;
|
|
UInt32 *length = 0;
|
|
void *outData;
|
|
|
|
OSStatus st =
|
|
SecKeychainItemCopyContent(2, ptr, ptr, length, outData);
|
|
// warn: data is not released
|
|
}
|
|
|
|
void test() {
|
|
unsigned int *ptr = 0;
|
|
UInt32 *length = 0;
|
|
void *outData;
|
|
|
|
OSStatus st =
|
|
SecKeychainItemCopyContent(2, ptr, ptr, length, &outData);
|
|
|
|
SecKeychainItemFreeContent(ptr, outData);
|
|
// warn: only call free if a non-NULL buffer was returned
|
|
}
|
|
|
|
void test() {
|
|
unsigned int *ptr = 0;
|
|
UInt32 *length = 0;
|
|
void *outData;
|
|
|
|
OSStatus st =
|
|
SecKeychainItemCopyContent(2, ptr, ptr, length, &outData);
|
|
|
|
st = SecKeychainItemCopyContent(2, ptr, ptr, length, &outData);
|
|
// warn: release data before another call to the allocator
|
|
|
|
if (st == noErr)
|
|
SecKeychainItemFreeContent(ptr, outData);
|
|
}
|
|
|
|
void test() {
|
|
SecKeychainItemRef itemRef = 0;
|
|
SecKeychainAttributeInfo *info = 0;
|
|
SecItemClass *itemClass = 0;
|
|
SecKeychainAttributeList *attrList = 0;
|
|
UInt32 *length = 0;
|
|
void *outData = 0;
|
|
|
|
OSStatus st =
|
|
SecKeychainItemCopyAttributesAndData(itemRef, info,
|
|
itemClass, &attrList,
|
|
length, &outData);
|
|
|
|
SecKeychainItemFreeContent(attrList, outData);
|
|
// warn: deallocator doesn't match the allocator
|
|
}
|
|
|