static void __sanitize_environment_variables() { char** src = _envp; char** dst = _envp; for (; src[0] != NULL; ++src) { if (!__is_valid_environment_variable(src[0])) { continue; } // Remove various unsafe environment variables if we're loading a setuid program. if (get_AT_SECURE() && __is_unsafe_environment_variable(src[0])) { continue; } dst[0] = src[0]; ++dst; } dst[0] = NULL; }
static void __sanitize_environment_variables(char** env) { bool is_AT_SECURE = getauxval(AT_SECURE); char** src = env; char** dst = env; for (; src[0] != nullptr; ++src) { if (!__is_valid_environment_variable(src[0])) { continue; } // Remove various unsafe environment variables if we're loading a setuid program. if (is_AT_SECURE && __is_unsafe_environment_variable(src[0])) { continue; } dst[0] = src[0]; ++dst; } dst[0] = nullptr; }