You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
|
|
|
|
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
|
|
}
|
|
|