about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2023-04-18 16:10:35 +0800
committerGitHub <noreply@github.com>2023-04-18 10:10:35 +0200
commitc61d341844d82ef4d1be17a1e1f019cbcdb2686f (patch)
treedc8827824b55b03f3cb87875d4863016626b8312
parent49e5a48e42537e5cdbf2fbef18c319544a626cc8 (diff)
downloadbox64-c61d341844d82ef4d1be17a1e1f019cbcdb2686f.tar.gz
box64-c61d341844d82ef4d1be17a1e1f019cbcdb2686f.zip
[ELF] Fixed a use-after-free issue (#709)
-rwxr-xr-xsrc/elfs/elfloader.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/elfs/elfloader.c b/src/elfs/elfloader.c
index e8be8b58..8a4078b6 100755
--- a/src/elfs/elfloader.c
+++ b/src/elfs/elfloader.c
@@ -80,8 +80,6 @@ void FreeElfHeader(elfheader_t** head)
     if(my_context)
         RemoveElfHeader(my_context, h);
 
-    box_free(h->name);
-    box_free(h->path);
     box_free(h->PHEntries);
     box_free(h->SHEntries);
     box_free(h->SHStrTab);
@@ -98,6 +96,9 @@ void FreeElfHeader(elfheader_t** head)
     FreeDefaultVersion(&h->weakdefver);
     
     FreeElfMemory(h);
+
+    box_free(h->name);
+    box_free(h->path);
     box_free(h);
 
     *head = NULL;