1 // SPDX-License-Identifier: (LGPL-2.0+ OR BSD-2-Clause)
2 /* Copyright (C) 2018 Netronome Systems, Inc. */
3 
4 #ifndef __TOOLS_LIBC_COMPAT_H
5 #define __TOOLS_LIBC_COMPAT_H
6 
7 #include <stdlib.h>
8 #include <linux/overflow.h>
9 
10 #ifdef COMPAT_NEED_REALLOCARRAY
reallocarray(void * ptr,size_t nmemb,size_t size)11 static inline void *reallocarray(void *ptr, size_t nmemb, size_t size)
12 {
13 	size_t bytes;
14 
15 	if (unlikely(check_mul_overflow(nmemb, size, &bytes)))
16 		return NULL;
17 	return realloc(ptr, bytes);
18 }
19 #endif
20 #endif
21