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