Lines Matching refs:Call

48   void checkPreCall(const CallEvent &Call, CheckerContext &C) const;
49 void checkPostCall(const CallEvent &Call, CheckerContext &C) const;
114 static Optional<FunctionData> create(const CallEvent &Call, in create()
116 if (!Call.getDecl()) in create()
119 const FunctionDecl *FDecl = Call.getDecl()->getAsFunction(); in create()
143 bool checkPre(const CallEvent &Call, const FunctionData &FData,
147 bool addSourcesPre(const CallEvent &Call, const FunctionData &FData,
152 bool addFiltersPre(const CallEvent &Call, const FunctionData &FData,
156 static bool propagateFromPre(const CallEvent &Call, CheckerContext &C);
169 bool checkUncontrolledFormatString(const CallEvent &Call,
178 bool checkSystemCall(const CallEvent &Call, StringRef Name,
187 bool checkTaintedBufferSize(const CallEvent &Call, CheckerContext &C) const;
192 bool checkCustomSinks(const CallEvent &Call, const FunctionData &FData,
222 using PropagationFuncType = bool (*)(bool IsTainted, const CallEvent &Call,
281 ProgramStateRef process(const CallEvent &Call, CheckerContext &C) const;
284 static bool postSocket(bool IsTainted, const CallEvent &Call,
527 void GenericTaintChecker::checkPreCall(const CallEvent &Call, in checkPreCall() argument
529 Optional<FunctionData> FData = FunctionData::create(Call, C); in checkPreCall()
535 if (checkPre(Call, *FData, C)) in checkPreCall()
540 if (addSourcesPre(Call, *FData, C)) in checkPreCall()
543 addFiltersPre(Call, *FData, C); in checkPreCall()
546 void GenericTaintChecker::checkPostCall(const CallEvent &Call, in checkPostCall() argument
550 propagateFromPre(Call, C); in checkPostCall()
558 bool GenericTaintChecker::addSourcesPre(const CallEvent &Call, in addSourcesPre() argument
565 ProgramStateRef State = Rule.process(Call, C); in addSourcesPre()
574 bool GenericTaintChecker::addFiltersPre(const CallEvent &Call, in addFiltersPre() argument
585 if (ArgNum >= Call.getNumArgs()) in addFiltersPre()
588 const Expr *Arg = Call.getArgExpr(ArgNum); in addFiltersPre()
601 bool GenericTaintChecker::propagateFromPre(const CallEvent &Call, in propagateFromPre() argument
615 State = addTaint(State, Call.getReturnValue()); in propagateFromPre()
621 if (Call.getNumArgs() < (ArgNum + 1)) in propagateFromPre()
623 const Expr *Arg = Call.getArgExpr(ArgNum); in propagateFromPre()
639 bool GenericTaintChecker::checkPre(const CallEvent &Call, in checkPre() argument
642 if (checkUncontrolledFormatString(Call, C)) in checkPre()
645 if (checkSystemCall(Call, FData.Name, C)) in checkPre()
648 if (checkTaintedBufferSize(Call, C)) in checkPre()
651 return checkCustomSinks(Call, FData, C); in checkPre()
680 GenericTaintChecker::TaintPropagationRule::process(const CallEvent &Call, in process() argument
687 if (ArgNum >= Call.getNumArgs()) in process()
691 isTaintedOrPointsToTainted(Call.getArgExpr(ArgNum), State, C))) in process()
698 for (unsigned i = VariadicIndex; i < Call.getNumArgs(); ++i) { in process()
700 isTaintedOrPointsToTainted(Call.getArgExpr(i), State, C))) in process()
706 IsTainted = PropagationFunc(IsTainted, Call, C); in process()
719 if (ArgNum >= Call.getNumArgs()) in process()
732 for (unsigned i = VariadicIndex; i < Call.getNumArgs(); ++i) { in process()
733 const Expr *Arg = Call.getArgExpr(i); in process()
749 bool /*IsTainted*/, const CallEvent &Call, CheckerContext &C) { in postSocket() argument
750 SourceLocation DomLoc = Call.getArgExpr(0)->getExprLoc(); in postSocket()
793 static bool getPrintfFormatArgumentNum(const CallEvent &Call, in getPrintfFormatArgumentNum() argument
799 const FunctionDecl *FDecl = Call.getDecl()->getAsFunction(); in getPrintfFormatArgumentNum()
805 Call.getNumArgs() > ArgNum) in getPrintfFormatArgumentNum()
846 const CallEvent &Call, CheckerContext &C) const { in checkUncontrolledFormatString() argument
849 if (!getPrintfFormatArgumentNum(Call, C, ArgNum)) in checkUncontrolledFormatString()
854 return generateReportIfTainted(Call.getArgExpr(ArgNum), in checkUncontrolledFormatString()
858 bool GenericTaintChecker::checkSystemCall(const CallEvent &Call, StringRef Name, in checkSystemCall() argument
876 if (ArgNum == InvalidArgIndex || Call.getNumArgs() < (ArgNum + 1)) in checkSystemCall()
879 return generateReportIfTainted(Call.getArgExpr(ArgNum), MsgSanitizeSystemArgs, in checkSystemCall()
885 bool GenericTaintChecker::checkTaintedBufferSize(const CallEvent &Call, in checkTaintedBufferSize() argument
887 const auto *FDecl = Call.getDecl()->getAsFunction(); in checkTaintedBufferSize()
920 return ArgNum != InvalidArgIndex && Call.getNumArgs() > ArgNum && in checkTaintedBufferSize()
921 generateReportIfTainted(Call.getArgExpr(ArgNum), MsgTaintedBufferSize, in checkTaintedBufferSize()
925 bool GenericTaintChecker::checkCustomSinks(const CallEvent &Call, in checkCustomSinks() argument
935 if (ArgNum >= Call.getNumArgs()) in checkCustomSinks()
938 if (generateReportIfTainted(Call.getArgExpr(ArgNum), MsgCustomSink, C)) in checkCustomSinks()