diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2025-01-27 13:27:58 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2025-01-27 13:27:58 +0100 |
| commit | f5dc03862157c7da884fb4be876c2d82d6d7226c (patch) | |
| tree | d0c482324720cb389f1d6939d42c8a12812fc6c3 /src | |
| parent | 38dce9138d702b18c265e5d4b2c6619ac694dbe6 (diff) | |
| download | box64-f5dc03862157c7da884fb4be876c2d82d6d7226c.tar.gz box64-f5dc03862157c7da884fb4be876c2d82d6d7226c.zip | |
[ENV] Improved a bit env var handling and per file env var
Diffstat (limited to 'src')
| -rw-r--r-- | src/include/env.h | 3 | ||||
| -rw-r--r-- | src/tools/env.c | 10 |
2 files changed, 5 insertions, 8 deletions
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 <unistd.h> #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; } |