Skip to content
Snippets Groups Projects
Commit 5366255e authored by an7s's avatar an7s
Browse files

Only display message when data/fn ptr shadow is triggered

parent d74e83dd
No related branches found
No related tags found
No related merge requests found
......@@ -108,13 +108,10 @@ void fptr_shadow_define_64(void *p_retAddress, void *p_instrumented, int p_shado
#else
// @todo: print first and last element of p_rv and see what we get
// verify against pushed values in the transform
#ifdef DEBUG
my_strcpy(msg, "FPTRSHADOW:DEFINE ");
my_strcpy(&msg[strlen(msg)], " retaddress: ");
itox(p_retAddress, &msg[strlen(msg)]);
/*
my_strcpy(&msg[strlen(msg)], " reg_values: ");
itox(p_rv, &msg[strlen(msg)]);
*/
my_strcpy(&msg[strlen(msg)], " instrumented: ");
itox(p_instrumented, &msg[strlen(msg)]);
my_strcpy(&msg[strlen(msg)], " shadowid: ");
......@@ -124,6 +121,8 @@ void fptr_shadow_define_64(void *p_retAddress, void *p_instrumented, int p_shado
my_strcpy(&msg[strlen(msg)], " \n");
write(1, msg, strlen(msg));
#endif
#endif
}
// check to make sure values match
......@@ -138,6 +137,8 @@ void fptr_shadow_check_64(void *p_retAddress, void *p_instrumented, int p_shadow
strata_sprintf(msg, "FPTRSHADOW:CHECK shadowid[%d] value[0x%p]\n", p_shadowIndex, *p_shadow);
detected_error(CWE_NONE, CWE_NONE, E_FPTR_OVERWRITE, msg, D_BUFFER, P_CONTINUE_EXECUTION);
#else
#ifdef DEBUG
my_strcpy(msg, "FPTRSHADOW:CHECK: ");
my_strcpy(&msg[strlen(msg)], " retaddress: ");
itox(p_retAddress, &msg[strlen(msg)]);
......@@ -149,6 +150,8 @@ void fptr_shadow_check_64(void *p_retAddress, void *p_instrumented, int p_shadow
itox(*p_shadow, &msg[strlen(msg)]);
my_strcpy(&msg[strlen(msg)], " \n");
write(1, msg, strlen(msg));
#endif
#endif
int success = check_shadow_value(p_shadowIndex, *p_shadow, &restored, &count);
......@@ -161,10 +164,7 @@ void fptr_shadow_check_64(void *p_retAddress, void *p_instrumented, int p_shadow
#ifdef STRATA
detected_error(CWE_NONE, CWE_NONE, E_FPTR_OVERWRITE, msg, D_BUFFER, P_CONTINUE_EXECUTION);
#else
my_strcpy(msg, "FPTRSHADOW:CHECK failed: ");
my_strcpy(&msg[strlen(msg)], " value saved: ");
itox(restored, &msg[strlen(msg)]);
my_strcpy(&msg[strlen(msg)], " restoredValue(copy out): ");
my_strcpy(msg, "Warning: overwrite of function pointer detected -- restoring saved value: 0x");
itox(*p_shadow, &msg[strlen(msg)]);
my_strcpy(&msg[strlen(msg)], " \n");
write(1, msg, strlen(msg));
......@@ -176,11 +176,13 @@ void fptr_shadow_check_64(void *p_retAddress, void *p_instrumented, int p_shadow
strata_sprintf(msg,"FPTRSHADOW:OK shadowid[%d] value[0x%p] shadow[0x%p] #[%d]", p_shadowIndex, *p_shadow, restored, count);
detected_error(CWE_NONE, CWE_NONE, E_FPTR_OVERWRITE, msg, D_BUFFER, P_CONTINUE_EXECUTION);
#else
#ifdef DEBUG
my_strcpy(msg, "FPTRSHADOW: OK: ");
my_strcpy(&msg[strlen(msg)], " shadowValue: ");
itox(*p_shadow, &msg[strlen(msg)]);
my_strcpy(&msg[strlen(msg)], " \n");
write(1, msg, strlen(msg));
#endif
#endif
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment