summaryrefslogtreecommitdiffstats
path: root/src/pdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pdb.c')
-rw-r--r--src/pdb.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/pdb.c b/src/pdb.c
index 1057f63..6960706 100644
--- a/src/pdb.c
+++ b/src/pdb.c
@@ -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;