diff --git a/misc.h b/misc.h index 7e8c4ff1..d6cd4212 100644 --- a/misc.h +++ b/misc.h @@ -109,7 +109,9 @@ # define SIZE_MAX __SIZE_MAX__ # elif defined(SIZE_T_MAX) && (SIZE_T_MAX > 0) # define SIZE_MAX SIZE_T_MAX -# else +# elif defined(__SIZE_TYPE__) +# define SIZE_MAX (~(__SIZE_TYPE__)0) +#else # define SIZE_MAX ((std::numeric_limits::max)()) # endif #endif diff --git a/secblock.h b/secblock.h index a2a695af..d38833b8 100644 --- a/secblock.h +++ b/secblock.h @@ -515,7 +515,7 @@ public: #if defined(CRYPTOPP_CXX11) && !defined(CRYPTOPP_DOXYGEN_PROCESSING) enum : size_type { ELEMS_MAX = A::ELEMS_MAX }; #else - static const size_type ELEMS_MAX = A::ELEMS_MAX; + static const size_type ELEMS_MAX = SIZE_MAX/sizeof(T); #endif //! \brief Construct a SecBlock with space for size elements.