aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2012-08-13 18:20:09 (GMT)
committerJouni Malinen <j@w1.fi>2012-08-13 18:20:09 (GMT)
commitb0cda9bd4662b6cfa0684b933fb9a12a84642e11 (patch)
tree33af8d75a11da992a0afe5f7b02800ae68c006fd /src
parentf9884c096ac3560a760b0893813ae2c3692b2b16 (diff)
downloadhostap-b0cda9bd4662b6cfa0684b933fb9a12a84642e11.zip
hostap-b0cda9bd4662b6cfa0684b933fb9a12a84642e11.tar.gz
hostap-b0cda9bd4662b6cfa0684b933fb9a12a84642e11.tar.bz2
Add os_realloc_array() wrapper
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>
Diffstat (limited to 'src')
-rw-r--r--src/utils/os.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/utils/os.h b/src/utils/os.h
index 468f66f..ad20834 100644
--- a/src/utils/os.h
+++ b/src/utils/os.h
@@ -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