From 7733ee7e893fdd6467a7d2992a3889141fbed93e Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Thu, 9 Nov 2017 15:54:24 -0700 Subject: [PATCH 1/3] fix for logging file names --- wolfcrypt/src/logging.c | 14 +++++++++----- wolfssl/wolfcrypt/types.h | 3 ++- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/wolfcrypt/src/logging.c b/wolfcrypt/src/logging.c index c27abb6c8..d82ab7945 100644 --- a/wolfcrypt/src/logging.c +++ b/wolfcrypt/src/logging.c @@ -208,7 +208,7 @@ void WOLFSSL_ENTER(const char* msg) { if (loggingEnabled) { char buffer[80]; - sprintf(buffer, "wolfSSL Entering %s", msg); + XSNPRINTF(buffer, sizeof(buffer), "wolfSSL Entering %s", msg); wolfssl_log(ENTER_LOG , buffer); } } @@ -218,7 +218,8 @@ void WOLFSSL_LEAVE(const char* msg, int ret) { if (loggingEnabled) { char buffer[80]; - sprintf(buffer, "wolfSSL Leaving %s, return %d", msg, ret); + XSNPRINTF(buffer, sizeof(buffer), "wolfSSL Leaving %s, return %d", + msg, ret); wolfssl_log(LEAVE_LOG , buffer); } } @@ -248,11 +249,13 @@ void WOLFSSL_ERROR(int error) if (wc_LockMutex(&debug_mutex) != 0) { WOLFSSL_MSG("Lock debug mutex failed"); - sprintf(buffer, "wolfSSL error occurred, error = %d", error); + XSNPRINTF(buffer, sizeof(buffer), + "wolfSSL error occurred, error = %d", error); } else { if (error < 0) error = error - (2*error); /*get absolute value*/ - sprintf(buffer, "wolfSSL error occurred, error = %d line:%d file:%s", + XSNPRINTF(buffer, sizeof(buffer), + "wolfSSL error occurred, error = %d line:%d file:%s", error, line, file); if (wc_AddErrorNode(error, line, buffer, (char*)file) != 0) { WOLFSSL_MSG("Error creating logging node"); @@ -263,7 +266,8 @@ void WOLFSSL_ERROR(int error) wc_UnLockMutex(&debug_mutex); } #else - sprintf(buffer, "wolfSSL error occurred, error = %d", error); + XSNPRINTF(buffer, sizeof(buffer), + "wolfSSL error occurred, error = %d", error); #endif #ifdef DEBUG_WOLFSSL wolfssl_log(ERROR_LOG , buffer); diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 280693dd5..1fa8b725d 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -324,7 +324,8 @@ #define XSTRNCASECMP(s1,s2,n) strncasecmp((s1),(s2),(n)) #endif - /* snprintf is used in asn.c for GetTimeString and PKCS7 test */ + /* snprintf is used in asn.c for GetTimeString, PKCS7 test, and when + debugging is turned on */ #ifndef USE_WINDOWS_API #define XSNPRINTF snprintf #else From 39ad478973b9b1ec8e2bb6fde52c3de797ef3362 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Thu, 9 Nov 2017 17:07:00 -0700 Subject: [PATCH 2/3] make the WOLFSSL_MAX_ERROR_SZ overridable --- wolfcrypt/src/logging.c | 6 +++--- wolfssl/wolfcrypt/types.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/wolfcrypt/src/logging.c b/wolfcrypt/src/logging.c index d82ab7945..68c55f366 100644 --- a/wolfcrypt/src/logging.c +++ b/wolfcrypt/src/logging.c @@ -207,7 +207,7 @@ void WOLFSSL_BUFFER(const byte* buffer, word32 length) void WOLFSSL_ENTER(const char* msg) { if (loggingEnabled) { - char buffer[80]; + char buffer[WOLFSSL_MAX_ERROR_SZ]; XSNPRINTF(buffer, sizeof(buffer), "wolfSSL Entering %s", msg); wolfssl_log(ENTER_LOG , buffer); } @@ -217,7 +217,7 @@ void WOLFSSL_ENTER(const char* msg) void WOLFSSL_LEAVE(const char* msg, int ret) { if (loggingEnabled) { - char buffer[80]; + char buffer[WOLFSSL_MAX_ERROR_SZ]; XSNPRINTF(buffer, sizeof(buffer), "wolfSSL Leaving %s, return %d", msg, ret); wolfssl_log(LEAVE_LOG , buffer); @@ -242,7 +242,7 @@ void WOLFSSL_ERROR(int error) if (loggingEnabled && error != WC_PENDING_E) #endif { - char buffer[80]; + char buffer[WOLFSSL_MAX_ERROR_SZ]; #if defined(OPENSSL_EXTRA) || defined(DEBUG_WOLFSSL_VERBOSE) (void)usrCtx; /* a user ctx for future flexibility */ (void)func; diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index 1fa8b725d..ea6850d9a 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -452,9 +452,11 @@ }; /* max error buffer string size */ + #ifndef WOLFSSL_MAX_ERROR_SZ enum { WOLFSSL_MAX_ERROR_SZ = 80 }; + #endif /* stack protection */ enum { From 149559e40fab99199edb725a787bc6a11d1573ce Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Fri, 10 Nov 2017 13:29:49 -0700 Subject: [PATCH 3/3] change WOLFSSL_MAX_ERROR_SZ to be a macro instead of enum --- wolfssl/wolfcrypt/types.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/wolfssl/wolfcrypt/types.h b/wolfssl/wolfcrypt/types.h index ea6850d9a..f7766d49c 100644 --- a/wolfssl/wolfcrypt/types.h +++ b/wolfssl/wolfcrypt/types.h @@ -453,9 +453,7 @@ /* max error buffer string size */ #ifndef WOLFSSL_MAX_ERROR_SZ - enum { - WOLFSSL_MAX_ERROR_SZ = 80 - }; + #define WOLFSSL_MAX_ERROR_SZ 80 #endif /* stack protection */