diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2026-07-17 13:30:47 +0200 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2026-07-17 13:30:47 +0200 |
| commit | ba07d7cf9430ab95f6f1f886079f60a3dcf345d1 (patch) | |
| tree | ece4997579a9765c1b19dad40b69bae2c4d7c102 /src/pdb.c | |
| parent | 45d31b1bb8699dbbb5fc89c807c95e8c8edbe895 (diff) | |
Fix stack walk find_function search
Fix string stack asserts
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; |
