forked from OSchip/llvm-project
Tweak insecureAPI analyzer checks to have the ability to be individually disabled.
The solution is a bit inefficient: it creates N checkers, one for each check, and each check does a dispatch on the function name. This is redundant, but we can fix this once we have the proper ability to enable/disable subchecks. Fixes <rdar://problem/11780180>. llvm-svn: 159459
This commit is contained in:
parent
cf86744ffe
commit
a33b078e73
|
@ -379,13 +379,6 @@ void WalkAST::checkCall_getpw(const CallExpr *CE, const FunctionDecl *FD) {
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void WalkAST::checkCall_mktemp(const CallExpr *CE, const FunctionDecl *FD) {
|
||||
if (!filter.check_mktemp) {
|
||||
// Fall back to the security check of looking for enough 'X's in the
|
||||
// format string, since that is a less severe warning.
|
||||
checkCall_mkstemp(CE, FD);
|
||||
return;
|
||||
}
|
||||
|
||||
const FunctionProtoType *FPT
|
||||
= dyn_cast<FunctionProtoType>(FD->getType().IgnoreParens());
|
||||
if(!FPT)
|
||||
|
@ -769,8 +762,9 @@ public:
|
|||
}
|
||||
|
||||
#define REGISTER_CHECKER(name) \
|
||||
namespace { class Checker_##name : public SecuritySyntaxChecker {}; }\
|
||||
void ento::register##name(CheckerManager &mgr) {\
|
||||
mgr.registerChecker<SecuritySyntaxChecker>()->filter.check_##name = true;\
|
||||
mgr.registerChecker<Checker_##name>()->filter.check_##name = true;\
|
||||
}
|
||||
|
||||
REGISTER_CHECKER(gets)
|
||||
|
|
Loading…
Reference in New Issue