From f5dc03862157c7da884fb4be876c2d82d6d7226c Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Mon, 27 Jan 2025 13:27:58 +0100 Subject: [ENV] Improved a bit env var handling and per file env var --- src/include/env.h | 3 +-- src/tools/env.c | 10 ++++------ 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/include/env.h b/src/include/env.h index 7007f8cd..0503b413 100644 --- a/src/include/env.h +++ b/src/include/env.h @@ -5,8 +5,7 @@ #include #define BOX64ENV(name) (box64env.name) -#define BOX64DRENV(name) \ - ((GetCurEnvByAddr(dyn->start) && cur_box64env->is_##name##_overridden) ? cur_box64env->name : box64env.name) +#define BOX64DRENV(name) (GetCurEnvByAddr(dyn->start)->name) #define SET_BOX64ENV(name, value) \ { \ box64env.name = (value); \ diff --git a/src/tools/env.c b/src/tools/env.c index 28f05e6f..b7d64c61 100644 --- a/src/tools/env.c +++ b/src/tools/env.c @@ -15,7 +15,6 @@ #include "rbtree.h" box64env_t box64env = { 0 }; -box64env_t* cur_box64env = NULL; KHASH_MAP_INIT_STR(box64env_entry, box64env_t) static kh_box64env_entry_t* box64env_entries = NULL; @@ -596,11 +595,10 @@ void RemoveMapping(uintptr_t addr, size_t length) box64env_t* GetCurEnvByAddr(uintptr_t addr) { - if (!envmap) return NULL; + if (!envmap) return &box64env; mapping_t* mapping = ((mapping_t*)rb_get_64(envmap, addr)); - if(!mapping) return NULL; + if(!mapping) return &box64env; box64env_t* env = mapping->env; - if(!env) return NULL; - cur_box64env = env; - return cur_box64env; + if(!env) return &box64env; + return env; } -- cgit 1.4.1