Only add the importNative primop if the allow-arbitrary-code-during-evaluation option is true (default false)

This commit is contained in:
Shea Levy 2014-06-24 10:50:03 -04:00
parent 5cd022d6c0
commit d62f46e500
3 changed files with 7 additions and 1 deletions

View file

@ -1368,7 +1368,8 @@ void EvalState::createBaseEnv()
mkApp(v, *baseEnv.values[baseEnvDispl - 1], *v2);
forceValue(v);
addConstant("import", v);
addPrimOp("__importNative", 2, prim_importNative);
if (settings.enableImportNative)
addPrimOp("__importNative", 2, prim_importNative);
addPrimOp("__typeOf", 1, prim_typeOf);
addPrimOp("isNull", 1, prim_isNull);
addPrimOp("__isFunction", 1, prim_isFunction);

View file

@ -61,6 +61,7 @@ Settings::Settings()
envKeepDerivations = false;
lockCPU = getEnv("NIX_AFFINITY_HACK", "1") == "1";
showTrace = false;
enableImportNative = false;
}
@ -148,6 +149,7 @@ void Settings::update()
get(sshSubstituterHosts, "ssh-substituter-hosts");
get(useSshSubstituter, "use-ssh-substituter");
get(logServers, "log-servers");
get(enableImportNative, "allow-arbitrary-code-during-evaluation");
string subs = getEnv("NIX_SUBSTITUTERS", "default");
if (subs == "default") {

View file

@ -200,6 +200,9 @@ struct Settings {
/* A list of URL prefixes that can return Nix build logs. */
Strings logServers;
/* Whether the importNative primop should be enabled */
bool enableImportNative;
private:
SettingsMap settings, overrides;