Fully copy function names

This commit is contained in:
Alex 2023-09-02 19:45:18 +03:00
parent 6d95cd5261
commit ac2bc8f6d0
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -43,7 +43,8 @@ namespace SymbolResolver
{
SymbolTable tbl{};
tbl.Address = Address;
tbl.FunctionName = (char *)Name;
tbl.FunctionName = new char[strlen(Name) + 1];
strcpy(tbl.FunctionName, Name);
this->SymTable.push_back(tbl);
this->SymbolTableExists = true;
}
@ -128,7 +129,8 @@ namespace SymbolResolver
continue;
SymbolTable tbl{};
tbl.Address = sym->st_value;
tbl.FunctionName = (char *)name;
tbl.FunctionName = new char[strlen(name) + 1];
strcpy(tbl.FunctionName, name);
this->SymTable.push_back(tbl);
this->SymbolTableExists = true;
@ -227,7 +229,8 @@ namespace SymbolResolver
name = &strtab[ElfSymbols[i].st_name];
SymbolTable tbl{};
tbl.Address = sym->st_value + BaseAddress;
tbl.FunctionName = (char *)name;
tbl.FunctionName = new char[strlen(name) + 1];
strcpy(tbl.FunctionName, name);
this->SymTable.push_back(tbl);
this->SymbolTableExists = true;
@ -244,5 +247,9 @@ namespace SymbolResolver
this->AppendSymbols(ImageAddress);
}
Symbols::~Symbols() {}
Symbols::~Symbols()
{
for (auto tbl : this->SymTable)
delete[] tbl.FunctionName;
}
}