[cfe-commits] r148631 - in /cfe/trunk: lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp test/Analysis/taint-tester.m
Anna Zaks
ganna at apple.com
Fri Jan 20 22:59:01 PST 2012
Author: zaks
Date: Sat Jan 21 00:59:01 2012
New Revision: 148631
URL: http://llvm.org/viewvc/llvm-project?rev=148631&view=rev
Log:
[analyzer] It's possible to have a non PointerType expression evaluate to a Loc value. When this happens, use the default type.
Added:
cfe/trunk/test/Analysis/taint-tester.m
Modified:
cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp?rev=148631&r1=148630&r2=148631&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp Sat Jan 21 00:59:01 2012
@@ -406,8 +406,8 @@
const PointerType *ArgTy =
dyn_cast<PointerType>(Arg->getType().getCanonicalType().getTypePtr());
- assert(ArgTy);
- SVal Val = State->getSVal(*AddrLoc, ArgTy->getPointeeType());
+ SVal Val = State->getSVal(*AddrLoc,
+ ArgTy ? ArgTy->getPointeeType(): QualType());
return Val.getAsSymbol();
}
Added: cfe/trunk/test/Analysis/taint-tester.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/taint-tester.m?rev=148631&view=auto
==============================================================================
--- cfe/trunk/test/Analysis/taint-tester.m (added)
+++ cfe/trunk/test/Analysis/taint-tester.m Sat Jan 21 00:59:01 2012
@@ -0,0 +1,20 @@
+// RUN: %clang_cc1 -analyze -analyzer-checker=experimental.security.taint,debug.TaintTest %s -verify
+
+#import <stdarg.h>
+
+ at interface NSString
+- (NSString *)stringByAppendingString:(NSString *)aString;
+ at end
+extern void NSLog (NSString *format, ...);
+extern void NSLogv(NSString *format, va_list args);
+
+void TestLog (NSString *format, ...);
+void TestLog (NSString *format, ...) {
+ va_list ap;
+ va_start(ap, format);
+ NSString *string = @"AAA: ";
+
+ NSLogv([string stringByAppendingString:format], ap);
+
+ va_end(ap);
+}
\ No newline at end of file
More information about the cfe-commits
mailing list