=================================================================== RCS file: /cvs/mandoc/compat_reallocarray.c,v retrieving revision 1.3 retrieving revision 1.5 diff -u -p -r1.3 -r1.5 --- mandoc/compat_reallocarray.c 2014/08/16 19:00:01 1.3 +++ mandoc/compat_reallocarray.c 2020/06/15 01:37:15 1.5 @@ -1,12 +1,5 @@ -#include "config.h" - -#if HAVE_REALLOCARRAY - -int dummy; - -#else - -/* $OpenBSD: compat_reallocarray.c,v 1.3 2014/08/16 19:00:01 schwarze Exp $ */ +/* $Id: compat_reallocarray.c,v 1.5 2020/06/15 01:37:15 schwarze Exp $ */ +/* $OpenBSD: compat_reallocarray.c,v 1.5 2020/06/15 01:37:15 schwarze Exp $ */ /* * Copyright (c) 2008 Otto Moerbeek * @@ -22,12 +15,18 @@ int dummy; * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "config.h" + #include #include #include #include -#define MUL_NO_OVERFLOW (1UL << (sizeof(size_t) * 4)) +/* + * This is sqrt(SIZE_MAX+1), as s1*s2 <= SIZE_MAX + * if both s1 < MUL_NO_OVERFLOW and s2 < MUL_NO_OVERFLOW + */ +#define MUL_NO_OVERFLOW ((size_t)1 << (sizeof(size_t) * 4)) void * reallocarray(void *optr, size_t nmemb, size_t size) @@ -39,5 +38,3 @@ reallocarray(void *optr, size_t nmemb, size_t size) } return realloc(optr, size * nmemb); } - -#endif /*!HAVE_REALLOCARRAY*/