diff options
author | Anna Zaks <ganna@apple.com> | 2011-08-05 00:37:00 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2011-08-05 00:37:00 +0000 |
commit | c52bed18146d8cd398e88f6daaf0f347a8c1a602 (patch) | |
tree | edcab4fa9db8b6f04bc639df210e5a67a1a1671f /clang/test/Analysis/keychainAPI.m | |
parent | 2ced913c9c33171c8c748de4f0fe924ac1eeeec0 (diff) | |
download | bcm5719-llvm-c52bed18146d8cd398e88f6daaf0f347a8c1a602.tar.gz bcm5719-llvm-c52bed18146d8cd398e88f6daaf0f347a8c1a602.zip |
KeychainAPI checker: Generate an error on double allocation. Pull out getAsPointeeMemoryRegion so that it could be reused.
llvm-svn: 136952
Diffstat (limited to 'clang/test/Analysis/keychainAPI.m')
-rw-r--r-- | clang/test/Analysis/keychainAPI.m | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clang/test/Analysis/keychainAPI.m b/clang/test/Analysis/keychainAPI.m index af0258a59b2..6a9a75330d8 100644 --- a/clang/test/Analysis/keychainAPI.m +++ b/clang/test/Analysis/keychainAPI.m @@ -93,11 +93,13 @@ void fooDoNotReportNull() { void doubleAlloc() { unsigned int *ptr = 0; OSStatus st = 0; - UInt32 *length = 0; - void **outData = 0; - SecKeychainItemCopyContent(2, ptr, ptr, length, outData); - SecKeychainItemCopyContent(2, ptr, ptr, length, outData); -}// no-warning + UInt32 length; + void *outData; + st = SecKeychainItemCopyContent(2, ptr, ptr, &length, &outData); + st = SecKeychainItemCopyContent(2, ptr, ptr, &length, &outData); // expected-warning {{Allocated data should be released before another call to the allocator:}} + if (st == noErr) + SecKeychainItemFreeContent(ptr, outData); +} void fooOnlyFree() { unsigned int *ptr = 0; |