diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-02-02 00:29:39 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-01 17:29:39 +0100 |
| commit | 877ca41451259bc586be9770d4dea64dc5bc6ce2 (patch) | |
| tree | 0a4671a07dd3aeb71ef8c06a6a7d565f008e0047 /src/tools | |
| parent | 94dedd47c695f9e10638c67d48c9fc589a377302 (diff) | |
| download | box64-877ca41451259bc586be9770d4dea64dc5bc6ce2.tar.gz box64-877ca41451259bc586be9770d4dea64dc5bc6ce2.zip | |
[ENV] Fixed crash when rcfile does not exist (for #2295) (#2307)
* [ENV] Fixed crash when rcfile does not exist (for #2295) * review
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/env.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/tools/env.c b/src/tools/env.c index 3e6c168e..7ca7fdd7 100644 --- a/src/tools/env.c +++ b/src/tools/env.c @@ -548,7 +548,6 @@ static kh_mapping_entry_t* mapping_entries = NULL; void RecordEnvMappings(uintptr_t addr, size_t length, int fd) { - #ifndef ANDROID if (!envmap) { envmap = rbtree_init("envmap"); } if(!mapping_entries) mapping_entries = kh_init(mapping_entry); @@ -568,8 +567,10 @@ void RecordEnvMappings(uintptr_t addr, size_t length, int fd) int ret; mapping_t* mapping = NULL; + if (!box64env_entries) + box64env_entries = kh_init(box64env_entry); khint_t k = kh_get(mapping_entry, mapping_entries, lowercase_filename); - if(k==kh_end(mapping_entries)) { + if(k == kh_end(mapping_entries)) { mapping = box_calloc(1, sizeof(mapping_t)); mapping->filename = box_strdup(lowercase_filename); mapping->fullname = box_strdup(fullname); @@ -588,7 +589,7 @@ void RecordEnvMappings(uintptr_t addr, size_t length, int fd) printf_log(LOG_DEBUG, "Applied [%s] of range %p:%p\n", filename, addr, addr + length); PrintEnvVariables(mapping->env, LOG_DEBUG); } - #endif + box_free(lowercase_filename); } void RemoveMapping(uintptr_t addr, size_t length) @@ -654,4 +655,4 @@ size_t SizeFileMapped(uintptr_t addr) return end - mapping->start; } return 0; -} \ No newline at end of file +} |