Skip to content

Commit 024281d

Browse files
committed
[analyzer] Harden security.cert.env.InvalidPtr checker fn matching
Relates to #88181
1 parent e096c14 commit 024281d

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

clang/lib/StaticAnalyzer/Checkers/cert/InvalidPtrChecker.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,33 @@ class InvalidPtrChecker
4848
bool InvalidatingGetEnv = false;
4949

5050
// GetEnv can be treated invalidating and non-invalidating as well.
51-
const CallDescription GetEnvCall{{"getenv"}, 1};
51+
const CallDescription GetEnvCall{CDM::CLibrary, {"getenv"}, 1};
5252

5353
const CallDescriptionMap<HandlerFn> EnvpInvalidatingFunctions = {
54-
{{{"setenv"}, 3}, &InvalidPtrChecker::EnvpInvalidatingCall},
55-
{{{"unsetenv"}, 1}, &InvalidPtrChecker::EnvpInvalidatingCall},
56-
{{{"putenv"}, 1}, &InvalidPtrChecker::EnvpInvalidatingCall},
57-
{{{"_putenv_s"}, 2}, &InvalidPtrChecker::EnvpInvalidatingCall},
58-
{{{"_wputenv_s"}, 2}, &InvalidPtrChecker::EnvpInvalidatingCall},
54+
{{CDM::CLibrary, {"setenv"}, 3},
55+
&InvalidPtrChecker::EnvpInvalidatingCall},
56+
{{CDM::CLibrary, {"unsetenv"}, 1},
57+
&InvalidPtrChecker::EnvpInvalidatingCall},
58+
{{CDM::CLibrary, {"putenv"}, 1},
59+
&InvalidPtrChecker::EnvpInvalidatingCall},
60+
{{CDM::CLibrary, {"_putenv_s"}, 2},
61+
&InvalidPtrChecker::EnvpInvalidatingCall},
62+
{{CDM::CLibrary, {"_wputenv_s"}, 2},
63+
&InvalidPtrChecker::EnvpInvalidatingCall},
5964
};
6065

6166
void postPreviousReturnInvalidatingCall(const CallEvent &Call,
6267
CheckerContext &C) const;
6368

6469
// SEI CERT ENV34-C
6570
const CallDescriptionMap<HandlerFn> PreviousCallInvalidatingFunctions = {
66-
{{{"setlocale"}, 2},
71+
{{CDM::CLibrary, {"setlocale"}, 2},
6772
&InvalidPtrChecker::postPreviousReturnInvalidatingCall},
68-
{{{"strerror"}, 1},
73+
{{CDM::CLibrary, {"strerror"}, 1},
6974
&InvalidPtrChecker::postPreviousReturnInvalidatingCall},
70-
{{{"localeconv"}, 0},
75+
{{CDM::CLibrary, {"localeconv"}, 0},
7176
&InvalidPtrChecker::postPreviousReturnInvalidatingCall},
72-
{{{"asctime"}, 1},
77+
{{CDM::CLibrary, {"asctime"}, 1},
7378
&InvalidPtrChecker::postPreviousReturnInvalidatingCall},
7479
};
7580

0 commit comments

Comments
 (0)