Technically realloc should handle this:

" However, unlike that *realloc*() call, *reallocarray*() fails safely in

       the case where the multiplication would overflow.  If such an over‐
       flow occurs, *reallocarray*() returns NULL, sets *errno
<http://man7.org/linux/man-pages/man3/errno.3.html>* to *ENOMEM*, and
       leaves the original block of memory unchanged."


On Sun, May 3, 2020 at 6:27 PM Commit Bot <[email protected]> wrote:

> From: Waldemar Kozaczuk <[email protected]>
> Committer: Waldemar Kozaczuk <[email protected]>
> Branch: master
>
> libc: add reallocarray
>
> Some apps like xclock from Fedora need reallocarray() which
> this patch adds as simple delegation to realloc.
>
> Signed-off-by: Waldemar Kozaczuk <[email protected]>
>
> ---
> diff --git a/core/mempool.cc b/core/mempool.cc
> --- a/core/mempool.cc
> +++ b/core/mempool.cc
> @@ -2014,6 +2014,11 @@ void* realloc(void* obj, size_t size)
>      return buf;
>  }
>
> +extern "C" void *reallocarray(void *ptr, size_t nmemb, size_t size)
> +{
> +    return realloc(ptr, nmemb * size);
> +}
> +
>  size_t malloc_usable_size(void* obj)
>  {
>      if ( obj == nullptr ) {
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osv-dev/CAL9cFfMmmVrmWnfSb-PbW1UmOT%2B5gWm%3D6QDhrCUk7U%2BdW1q7Bw%40mail.gmail.com.

Reply via email to