diff options
Diffstat (limited to 'src/pdb.c')
| -rw-r--r-- | src/pdb.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -197,6 +197,7 @@ enum STREAM_INDEX { extern u8* string_stack_base; extern u8* string_stack_current; +extern const u32 string_stack_size; void open_pdb(const i8* pdb_path, struct module* module) { void* pdb_file = CreateFileA(pdb_path, GENERIC_READ | FILE_READ_ATTRIBUTES, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); @@ -379,8 +380,8 @@ void open_pdb(const i8* pdb_path, struct module* module) { struct PROCSYM32* proc = (struct PROCSYM32*)cur_sym; print("PROC32 SYMBOL %s\n", proc->name); // TODO: Add string management code - assert(string_stack_current - 16U * 4096U < string_stack_base); size_t length = str_len((const char*)proc->name); + assert(string_stack_current - (string_stack_current + length) < string_stack_size); str_cat((char*)string_stack_current, (const char*)proc->name, length); string_stack_current[length] = '\0'; u32 start_address = proc->off + module->nt_header.OptionalHeader.BaseOfCode; |
