From 5366255e4c36e731558e5d46ab9defd657260135 Mon Sep 17 00:00:00 2001 From: an7s <an7s@git.zephyr-software.com> Date: Sun, 28 Feb 2016 23:10:44 +0000 Subject: [PATCH] Only display message when data/fn ptr shadow is triggered --- datashadow/datashadow_callbacks.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/datashadow/datashadow_callbacks.c b/datashadow/datashadow_callbacks.c index a744b5b..6c6cddd 100644 --- a/datashadow/datashadow_callbacks.c +++ b/datashadow/datashadow_callbacks.c @@ -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 } } -- GitLab