Add os_realloc_array() wrapper
authorJouni Malinen <j@w1.fi>
Mon, 13 Aug 2012 18:20:09 +0000 (21:20 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 13 Aug 2012 18:20:09 +0000 (21:20 +0300)
This function can be used as a wrapper for os_realloc(ptr, nmemb * size)
when a reallocation is used for an array. The main benefit over
os_realloc() is in having an extra check to catch integer overflows in
multiplication. This is similar to the os_zalloc() to os_calloc() move.

Signed-hostap: Jouni Malinen <j@w1.fi>

src/utils/os.h

index 468f66f..ad20834 100644 (file)
@@ -486,6 +486,14 @@ char * os_strdup(const char *s);
 #endif /* OS_NO_C_LIB_DEFINES */
 
 
+static inline void * os_realloc_array(void *ptr, size_t nmemb, size_t size)
+{
+       if (size && nmemb > (~(size_t) 0) / size)
+               return NULL;
+       return os_realloc(ptr, nmemb * size);
+}
+
+
 /**
  * os_strlcpy - Copy a string with size bound and NUL-termination
  * @dest: Destination