Fixes a crash due to jumping in the middle of a routine in the client.signal test, which skips the saving/setting of the frame pointer added in the beginning of routines.
Redirects execution to the beginning of the hook routine, instead of somewhere in the middle which can cause issues if essential code sequences like this are skipped.
Documents a pitfall of using DR_SIGNAL_REDIRECT
or dr_redirect_execution
to redirect control to an
arbitrary pc.
Fixes: #5177 (closed)
Activity
requested review from @derekbruening
- Last updated by Abhinav Anil Sharma
- Last updated by Abhinav Anil Sharma
requested review from @derekbruening
- Last updated by Abhinav Anil Sharma
- Last updated by Abhinav Anil Sharma
226 212 dr_register_bb_event(bb_event); 227 213 dr_register_signal_event(signal_event); 228 214 dr_register_kernel_xfer_event(kernel_xfer_event); 215 module_data_t *exe = dr_get_main_module(); 216 DR_ASSERT(exe != NULL); 217 redirect_tag = (app_pc)dr_get_proc_address(exe->handle, "hook_and_long_jump");
Please register or sign in to reply