diff --git a/include/mbedtls/debug.h b/include/mbedtls/debug.h index ecab1023f9..e11f373831 100644 --- a/include/mbedtls/debug.h +++ b/include/mbedtls/debug.h @@ -89,10 +89,12 @@ #if defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER < 1900) #include #define MBEDTLS_PRINTF_SIZET PRIuPTR + #define MBEDTLS_PRINTF_SIZET_HEX PRIxPTR #define MBEDTLS_PRINTF_LONGLONG "I64d" #else \ /* defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER < 1900) */ #define MBEDTLS_PRINTF_SIZET "zu" + #define MBEDTLS_PRINTF_SIZET_HEX "zx" #define MBEDTLS_PRINTF_LONGLONG "lld" #endif \ /* defined(__MINGW32__) || (defined(_MSC_VER) && _MSC_VER < 1900) */ diff --git a/library/debug.c b/library/debug.c index 8ac4b0ba54..0721d60a14 100644 --- a/library/debug.c +++ b/library/debug.c @@ -154,12 +154,13 @@ static void mbedtls_debug_print_buf_ext(const mbedtls_ssl_context *ssl, int leve return; } - mbedtls_snprintf(str, sizeof(str), "dumping '%s' (%zu bytes)\n", text, len); + mbedtls_snprintf(str, sizeof(str), "dumping '%s' (%" MBEDTLS_PRINTF_SIZET " bytes)\n", + text, len); debug_send_line(ssl, level, file, line, str); while (len > 0) { memset(str, 0, sizeof(str)); - idx = mbedtls_snprintf(str, sizeof(str), "%04zx: ", curr_offset); + idx = mbedtls_snprintf(str, sizeof(str), "%04" MBEDTLS_PRINTF_SIZET_HEX ": ", curr_offset); chunk_len = (len >= 16) ? 16 : len; mbedtls_debug_print_buf_one_line(str + idx, sizeof(str) - idx, &buf[curr_offset], chunk_len,