From e34dcd7ec5e2fc814a750a839c8fd48651c06e44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 2 Nov 2015 06:34:46 +0900 Subject: [PATCH] Use own implementation of strsep() Not available on windows, and strtok() is not a good option --- tests/suites/test_suite_x509parse.function | 32 +++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function index 6fa97adf0..0c547910c 100644 --- a/tests/suites/test_suite_x509parse.function +++ b/tests/suites/test_suite_x509parse.function @@ -39,6 +39,36 @@ int verify_all( void *data, mbedtls_x509_crt *crt, int certificate_depth, uint32 return 0; } +/* strsep() not available on Windows */ +char *mystrsep(char **stringp, const char *delim) +{ + const char *p; + char *ret = *stringp; + + if( *stringp == NULL ) + return( NULL ); + + for( ; ; (*stringp)++ ) + { + if( **stringp == '\0' ) + { + *stringp = NULL; + goto done; + } + + for( p = delim; *p != '\0'; p++ ) + if( **stringp == *p ) + { + **stringp = '\0'; + (*stringp)++; + goto done; + } + } + +done: + return( ret ); +} + #if defined(MBEDTLS_X509_CRT_PARSE_C) typedef struct { char buf[512]; @@ -457,7 +487,7 @@ void mbedtls_x509_crt_verify_chain( char *chain_paths, char *trusted_ca, int fl mbedtls_x509_crt_init( &chain ); mbedtls_x509_crt_init( &trusted ); - while( ( act = strsep( &chain_paths, " " ) ) != NULL ) + while( ( act = mystrsep( &chain_paths, " " ) ) != NULL ) TEST_ASSERT( mbedtls_x509_crt_parse_file( &chain, act ) == 0 ); TEST_ASSERT( mbedtls_x509_crt_parse_file( &trusted, trusted_ca ) == 0 );