| //===- Environment.h - ORC-RT executor environment access -------*- C++ -*-===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| // | |
| // Helpers for reading the process environment. | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #ifndef ORC_RT_LIB_EXECUTOR_ENVIRONMENT_H | |
| #define ORC_RT_LIB_EXECUTOR_ENVIRONMENT_H | |
| namespace orc_rt { | |
| /// Like getenv, but returns null when the process is running with elevated | |
| /// privileges (e.g. a set-user-ID or set-group-ID program), so that a variable | |
| /// in an attacker-controlled environment cannot influence a privileged host. | |
| /// | |
| /// Use this for any environment variable whose value has security-relevant | |
| /// effects, e.g. choosing a file to open. | |
| const char *secureGetenv(const char *Name); | |
| } // namespace orc_rt | |
| #endif // ORC_RT_LIB_EXECUTOR_ENVIRONMENT_H |