summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/keychainAPI.m
diff options
context:
space:
mode:
authorAnna Zaks <ganna@apple.com>2011-08-05 00:37:00 +0000
committerAnna Zaks <ganna@apple.com>2011-08-05 00:37:00 +0000
commitc52bed18146d8cd398e88f6daaf0f347a8c1a602 (patch)
treeedcab4fa9db8b6f04bc639df210e5a67a1a1671f /clang/test/Analysis/keychainAPI.m
parent2ced913c9c33171c8c748de4f0fe924ac1eeeec0 (diff)
downloadbcm5719-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.m12
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;
OpenPOWER on IntegriCloud