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