Use foreach loop to match setuid unsafe env vars.

Change-Id: I1e94daefac8e601281f38c7ce29ba3172a4a60bb
This commit is contained in:
Josh Gao 2015-10-01 15:50:16 -07:00
parent 143409d75b
commit a5d5d16c3c
1 changed files with 30 additions and 31 deletions

View File

@ -237,7 +237,7 @@ static bool __is_valid_environment_variable(const char* name) {
static bool __is_unsafe_environment_variable(const char* name) { static bool __is_unsafe_environment_variable(const char* name) {
// None of these should be allowed in setuid programs. // None of these should be allowed in setuid programs.
static const char* const UNSAFE_VARIABLE_NAMES[] = { static constexpr const char* UNSAFE_VARIABLE_NAMES[] = {
"GCONV_PATH", "GCONV_PATH",
"GETCONF_DIR", "GETCONF_DIR",
"HOSTALIASES", "HOSTALIASES",
@ -265,10 +265,9 @@ static bool __is_unsafe_environment_variable(const char* name) {
"RES_OPTIONS", "RES_OPTIONS",
"TMPDIR", "TMPDIR",
"TZDIR", "TZDIR",
nullptr
}; };
for (size_t i = 0; UNSAFE_VARIABLE_NAMES[i] != nullptr; ++i) { for (const auto& unsafe_variable_name : UNSAFE_VARIABLE_NAMES) {
if (env_match(name, UNSAFE_VARIABLE_NAMES[i]) != nullptr) { if (env_match(name, unsafe_variable_name) != nullptr) {
return true; return true;
} }
} }