From 2d7083435dbd60e800916b4380c90cd56c762691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20P=C3=A9gouri=C3=A9-Gonnard?= Date: Mon, 5 Oct 2015 15:23:11 +0100 Subject: [PATCH] Fix references to non-standard SIZE_T_MAX Turns out C99 doesn't define SIZE_T_MAX, so let's not use it. --- include/mbedtls/base64.h | 4 ++-- library/base64.c | 6 ++++-- library/bignum.c | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/include/mbedtls/base64.h b/include/mbedtls/base64.h index 18e83120b..352c652db 100644 --- a/include/mbedtls/base64.h +++ b/include/mbedtls/base64.h @@ -24,7 +24,6 @@ #define MBEDTLS_BASE64_H #include -#include #define MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL -0x002A /**< Output buffer too small. */ #define MBEDTLS_ERR_BASE64_INVALID_CHARACTER -0x002C /**< Invalid character in input. */ @@ -46,7 +45,8 @@ extern "C" { * *olen is always updated to reflect the amount * of data that has (or would have) been written. * If that length cannot be represented, then no data is - * written to the buffer and *olen is set to SIZE_T_MAX. + * written to the buffer and *olen is set to the maximum + * length representable as a size_t. * * \note Call this function with dlen = 0 to obtain the * required buffer size in *olen diff --git a/library/base64.c b/library/base64.c index fc44c15ae..3432e5fcd 100644 --- a/library/base64.c +++ b/library/base64.c @@ -69,6 +69,8 @@ static const unsigned char base64_dec_map[128] = 49, 50, 51, 127, 127, 127, 127, 127 }; +#define BASE64_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */ + /* * Encode a buffer into base64 format */ @@ -87,9 +89,9 @@ int mbedtls_base64_encode( unsigned char *dst, size_t dlen, size_t *olen, n = slen / 3 + ( slen % 3 != 0 ); - if( n > ( SIZE_T_MAX - 1 ) / 4 ) + if( n > ( BASE64_SIZE_T_MAX - 1 ) / 4 ) { - *olen = SIZE_T_MAX; + *olen = BASE64_SIZE_T_MAX; return( MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL ); } diff --git a/library/bignum.c b/library/bignum.c index 280bbfd85..628a6eedd 100644 --- a/library/bignum.c +++ b/library/bignum.c @@ -38,7 +38,6 @@ #include "mbedtls/bn_mul.h" #include -#include #if defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" @@ -59,6 +58,8 @@ static void mbedtls_zeroize( void *v, size_t n ) { #define biL (ciL << 3) /* bits in limb */ #define biH (ciL << 2) /* half limb size */ +#define MPI_SIZE_T_MAX ( (size_t) -1 ) /* SIZE_T_MAX is not standard */ + /* * Convert between bits/chars and number of limbs * Divide first in order to avoid potential overflows @@ -411,7 +412,7 @@ int mbedtls_mpi_read_string( mbedtls_mpi *X, int radix, const char *s ) if( radix == 16 ) { - if( slen > SIZE_T_MAX >> 2 ) + if( slen > MPI_SIZE_T_MAX >> 2 ) return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); n = BITS_TO_LIMBS( slen << 2 );