summaryrefslogtreecommitdiffstats
path: root/src/events.c
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2026-07-17 13:30:47 +0200
committerladevieq <ladevie.quentin@gmail.com>2026-07-17 13:30:47 +0200
commitba07d7cf9430ab95f6f1f886079f60a3dcf345d1 (patch)
treeece4997579a9765c1b19dad40b69bae2c4d7c102 /src/events.c
parent45d31b1bb8699dbbb5fc89c807c95e8c8edbe895 (diff)
Fix stack walk find_function search
Fix string stack asserts
Diffstat (limited to 'src/events.c')
-rw-r--r--src/events.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/events.c b/src/events.c
index 8c0f8ad..85e68c2 100644
--- a/src/events.c
+++ b/src/events.c
@@ -268,6 +268,7 @@ u8 expect_single_step = FALSE;
extern DEBUG_EVENT dbg_event;
extern u8* string_stack_base;
extern u8* string_stack_current;
+extern const u32 string_stack_size;
const char* dummy_name = "Function_dummy_name";
@@ -394,10 +395,11 @@ void load_symbols(const void* base_addr, struct module* module) {
for (; name_index < export_dir.NumberOfNames; name_index++) {
if (ordinals[name_index] == i) {
// TODO: Add string management code
- assert(string_stack_current - 16U * 4096U < string_stack_base);
void* name_address = (void*)((u64)module->base_addr + names_address[name_index]);
read_memory(name_address, name, 256U);
length = str_len((const char*)name);
+
+ assert(string_stack_current - (string_stack_current + length) < string_stack_size);
break;
}
}
@@ -685,7 +687,7 @@ void handle_output_debug_string(void) {
OUTPUT_DEBUG_STRING_INFO dbg_str_event = dbg_event.u.DebugString;
char* str_addr = dbg_str_event.lpDebugStringData;
size_t str_size = (size_t)dbg_str_event.nDebugStringLength;
- // assert(str_size > 1024U);
+ assert(str_size > 1024U * sizeof(u16));
u16 dbg_str[1024U] = { 0U };
if (!read_memory(str_addr, dbg_str, str_size)) {
print("%s %u\n", "OutputDebugStringDebugEvent : error reading debug string : ", GetLastError());