mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-14 07:20:52 +00:00
Use an array of strings instead of pointer smuggling
Signed-off-by: Bence Szépkúti <bence.szepkuti@arm.com>
This commit is contained in:
parent
46e0b1cac9
commit
24f11a366d
@ -1,12 +1,11 @@
|
||||
# printf_int_expr expects a smuggled string expression as its first parameter
|
||||
printf "%" MBEDTLS_PRINTF_SIZET, 0
|
||||
printf_int_expr:(uintptr_t) "%" MBEDTLS_PRINTF_SIZET:sizeof(size_t):0:"0"
|
||||
printf_int_expr:PRINTF_SIZET:sizeof(size_t):0:"0"
|
||||
|
||||
printf "%" MBEDTLS_PRINTF_LONGLONG, 0
|
||||
printf_int_expr:(uintptr_t) "%" MBEDTLS_PRINTF_LONGLONG:sizeof(long long):0:"0"
|
||||
printf_int_expr:PRINTF_LONGLONG:sizeof(long long):0:"0"
|
||||
|
||||
printf "%" MBEDTLS_PRINTF_MS_TIME, 0
|
||||
printf_int_expr:(uintptr_t) "%" MBEDTLS_PRINTF_MS_TIME:sizeof(mbedtls_ms_time_t):0:"0"
|
||||
printf_int_expr:PRINTF_MS_TIME:sizeof(mbedtls_ms_time_t):0:"0"
|
||||
|
||||
Debug print msg (threshold 1, level 0)
|
||||
debug_print_msg_threshold:1:0:"MyFile":999:"MyFile(0999)\: Text message, 2 == 2\n"
|
||||
|
@ -14,6 +14,18 @@
|
||||
typedef int64_t mbedtls_ms_time_t;
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
PRINTF_SIZET,
|
||||
PRINTF_LONGLONG,
|
||||
PRINTF_MS_TIME,
|
||||
} printf_format_indicator_t;
|
||||
|
||||
const char *const printf_formats[] = {
|
||||
[PRINTF_SIZET] = "%" MBEDTLS_PRINTF_SIZET,
|
||||
[PRINTF_LONGLONG] = "%" MBEDTLS_PRINTF_LONGLONG,
|
||||
[PRINTF_MS_TIME] = "%" MBEDTLS_PRINTF_MS_TIME,
|
||||
};
|
||||
|
||||
struct buffer_data {
|
||||
char buf[2000];
|
||||
char *ptr;
|
||||
@ -81,8 +93,7 @@ static void noop_invalid_parameter_handler(
|
||||
*/
|
||||
|
||||
/* BEGIN_CASE */
|
||||
void printf_int_expr(intmax_t smuggle_format_expr, /* TODO: teach test framework about string expressions */
|
||||
intmax_t sizeof_x, intmax_t x, char *result)
|
||||
void printf_int_expr(int format_indicator, intmax_t sizeof_x, intmax_t x, char *result)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
/* Windows treats any invalid format specifiers passsed to the CRT as fatal assertion failures.
|
||||
@ -95,7 +106,7 @@ void printf_int_expr(intmax_t smuggle_format_expr, /* TODO: teach test framework
|
||||
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
|
||||
#endif
|
||||
|
||||
const char *format = (char *) ((uintptr_t) smuggle_format_expr);
|
||||
const char *format = printf_formats[format_indicator];
|
||||
char *output = NULL;
|
||||
const size_t n = strlen(result);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user