Handle platform differences in gmtime_s
MSVC and C11 specify different arguments and return value meaning for gmtime_s. Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
parent
3383e432bc
commit
4bfb007dcb
1 changed files with 6 additions and 0 deletions
|
@ -74,6 +74,7 @@ void mbedtls_platform_zeroize( void *buf, size_t len )
|
|||
#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */
|
||||
|
||||
#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
|
||||
#define __STDC_WANT_LIB_EXT1__ 1
|
||||
#include <time.h>
|
||||
#if !defined(_WIN32) && (defined(unix) || \
|
||||
defined(__unix) || defined(__unix__) || (defined(__APPLE__) && \
|
||||
|
@ -105,7 +106,12 @@ struct tm *mbedtls_platform_gmtime_r( const mbedtls_time_t *tt,
|
|||
struct tm *tm_buf )
|
||||
{
|
||||
#if defined(_WIN32) && !defined(PLATFORM_UTIL_USE_GMTIME)
|
||||
#if defined(__STDC_LIB_EXT1__)
|
||||
return( ( gmtime_s( tt, tm_buf ) == 0 ) ? NULL : tm_buf );
|
||||
#else
|
||||
/* MSVC and mingw64 argument order and return value are inconsistent with the C11 standard */
|
||||
return( ( gmtime_s( tm_buf, tt ) == 0 ) ? tm_buf : NULL );
|
||||
#endif
|
||||
#elif !defined(PLATFORM_UTIL_USE_GMTIME)
|
||||
return( gmtime_r( tt, tm_buf ) );
|
||||
#else
|
||||
|
|
Loading…
Reference in a new issue