Skip to content

Commit 8dac772

Browse files
Update checkfunctions.cpp
1 parent a372e8d commit 8dac772

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

‎lib/checkfunctions.cpp‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,14 @@ void CheckFunctionsImpl::functionCalledError(const Token* tok, Severity severity
102102
reportError(tok, severity, prefix + "Called", msg, CWE477, Certainty::normal);
103103
}
104104

105-
static bool hasMinSize(const Token* ftok, int argnr, const Settings& settings)
105+
static bool hasArgMinSize(const Token* ftok, int argnr, const Settings& settings)
106106
{
107-
const std::vector<Library::ArgumentChecks::MinSize>* minsizes = settings.library.argminsizes(ftok, argnr);
108-
return minsizes && !minsizes->empty();
107+
if (const std::vector<Library::ArgumentChecks::MinSize>* minsizes = settings.library.argminsizes(ftok, argnr)) {
108+
return std::any_of(minsizes->begin(), minsizes->end(), [](const Library::ArgumentChecks::MinSize& ms) {
109+
return ms.type == Library::ArgumentChecks::MinSize::Type::ARGVALUE;
110+
});
111+
}
112+
return false;
109113
}
110114

111115
//---------------------------------------------------------------------------
@@ -143,7 +147,7 @@ void CheckFunctionsImpl::invalidFunctionUsage()
143147
invalidFunctionArgError(argtok, functionToken->str(), argnr, nullptr, mSettings.library.validarg(functionToken, argnr));
144148
}
145149
// check <strz>
146-
if (mSettings.library.isargstrz(functionToken, argnr) && !hasMinSize(functionToken, argnr, mSettings)) {
150+
if (mSettings.library.isargstrz(functionToken, argnr) && !hasArgMinSize(functionToken, argnr, mSettings)) {
147151
if (Token::Match(argtok, "& %var% !![") && argtok->next() && argtok->next()->valueType()) {
148152
const ValueType * valueType = argtok->next()->valueType();
149153
const Variable * variable = argtok->next()->variable();

0 commit comments

Comments
 (0)