mirror of
https://github.com/ARMmbed/mbedtls.git
synced 2025-05-12 01:42:21 +08: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 "%" 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 "%" 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 "%" 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, level 0)
|
||||||
debug_print_msg_threshold:1:0:"MyFile":999:"MyFile(0999)\: Text message, 2 == 2\n"
|
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;
|
typedef int64_t mbedtls_ms_time_t;
|
||||||
#endif
|
#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 {
|
struct buffer_data {
|
||||||
char buf[2000];
|
char buf[2000];
|
||||||
char *ptr;
|
char *ptr;
|
||||||
@ -81,8 +93,7 @@ static void noop_invalid_parameter_handler(
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* BEGIN_CASE */
|
/* BEGIN_CASE */
|
||||||
void printf_int_expr(intmax_t smuggle_format_expr, /* TODO: teach test framework about string expressions */
|
void printf_int_expr(int format_indicator, intmax_t sizeof_x, intmax_t x, char *result)
|
||||||
intmax_t sizeof_x, intmax_t x, char *result)
|
|
||||||
{
|
{
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
/* Windows treats any invalid format specifiers passsed to the CRT as fatal assertion failures.
|
/* 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);
|
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *format = (char *) ((uintptr_t) smuggle_format_expr);
|
const char *format = printf_formats[format_indicator];
|
||||||
char *output = NULL;
|
char *output = NULL;
|
||||||
const size_t n = strlen(result);
|
const size_t n = strlen(result);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user