From 51f65e4b86f59c7976168eeb61dbe16bbda88356 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Wed, 2 Oct 2019 16:01:14 +0200 Subject: [PATCH] Standardize prototypes of platform_memcpy/memset As replacements of standard library functions, they should have the same prototype, including return type. While it doesn't usually matter when used directly, it does when the address of the function is taken, as done with memset_func, used for implementing mbedtls_platform_zeroize(). --- include/mbedtls/platform_util.h | 6 ++++-- library/platform_util.c | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/include/mbedtls/platform_util.h b/include/mbedtls/platform_util.h index f2aeffceb..67a7877eb 100644 --- a/include/mbedtls/platform_util.h +++ b/include/mbedtls/platform_util.h @@ -178,8 +178,9 @@ void mbedtls_platform_zeroize( void *buf, size_t len ); * \param value Value to be used when setting the buffer. * \param num The length of the buffer in bytes. * + * \return The value of \p ptr. */ -void mbedtls_platform_memset( void *ptr, int value, size_t num ); +void *mbedtls_platform_memset( void *ptr, int value, size_t num ); /** * \brief Secure memcpy @@ -195,8 +196,9 @@ void mbedtls_platform_memset( void *ptr, int value, size_t num ); * \param src Source buffer where the data is being copied from. * \param num The length of the buffers in bytes. * + * \return The value of \p dst. */ -void mbedtls_platform_memcpy( void *dst, const void *src, size_t num ); +void *mbedtls_platform_memcpy( void *dst, const void *src, size_t num ); /** * \brief Secure memcmp diff --git a/library/platform_util.c b/library/platform_util.c index dad83762f..349146d48 100644 --- a/library/platform_util.c +++ b/library/platform_util.c @@ -79,7 +79,7 @@ void mbedtls_platform_zeroize( void *buf, size_t len ) } #endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */ -void mbedtls_platform_memset( void *ptr, int value, size_t num ) +void *mbedtls_platform_memset( void *ptr, int value, size_t num ) { /* Randomize start offset. */ size_t start_offset = (size_t) mbedtls_platform_random_in_range( num ); @@ -93,10 +93,10 @@ void mbedtls_platform_memset( void *ptr, int value, size_t num ) memset( (void *) ptr, data, start_offset ); /* Perform the original memset */ - memset( ptr, value, num ); + return( memset( ptr, value, num ) ); } -void mbedtls_platform_memcpy( void *dst, const void *src, size_t num ) +void *mbedtls_platform_memcpy( void *dst, const void *src, size_t num ) { /* Randomize start offset. */ size_t start_offset = (size_t) mbedtls_platform_random_in_range( num ); @@ -107,7 +107,7 @@ void mbedtls_platform_memcpy( void *dst, const void *src, size_t num ) memcpy( (void *) ( (unsigned char *) dst + start_offset ), (void *) ( (unsigned char *) src + start_offset ), ( num - start_offset ) ); - memcpy( (void *) dst, (void *) src, start_offset ); + return( memcpy( (void *) dst, (void *) src, start_offset ) ); } int mbedtls_platform_memcmp( const void *buf1, const void *buf2, size_t num )