diff --git a/include/mbedtls/ssl_internal.h b/include/mbedtls/ssl_internal.h index 1659aa29c..0f88eda79 100644 --- a/include/mbedtls/ssl_internal.h +++ b/include/mbedtls/ssl_internal.h @@ -198,13 +198,13 @@ * \param end Pointer to one past the end of the buffer. * \param need Needed space in bytes. * - * \return Non-zero if the needed space is available in the buffer, 0 + * \return Zero if the needed space is available in the buffer, non-zero * otherwise. */ static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, const uint8_t *end, size_t need ) { - return( cur <= end && need <= (size_t)( end - cur ) ); + return( ( cur > end ) || ( need > (size_t)( end - cur ) ) ); } /** @@ -219,7 +219,7 @@ static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, */ #define MBEDTLS_SSL_CHK_BUF_PTR( cur, end, need ) \ do { \ - if( mbedtls_ssl_chk_buf_ptr( ( cur ), ( end ), ( need ) ) == 0 ) \ + if( mbedtls_ssl_chk_buf_ptr( ( cur ), ( end ), ( need ) ) != 0 ) \ { \ return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); \ } \