diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-12-03 06:24:38 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:06:18 -0500 |
commit | 58c326809a816703dc516c3022c9c4dbb9d09445 (patch) | |
tree | 3900a7b59edf075e09459e0bf5f85097396bd9aa /source4/lib | |
parent | c9932a3a92dd7b8696e4e145c7d7e2c080b46ffb (diff) | |
download | samba-58c326809a816703dc516c3022c9c4dbb9d09445.tar.gz samba-58c326809a816703dc516c3022c9c4dbb9d09445.tar.bz2 samba-58c326809a816703dc516c3022c9c4dbb9d09445.zip |
r4052: fixed a bunch of code to use the type safe _p allocation macros
(This used to be commit 80d15fa3402a9d1183467463f6b21c0b674bc442)
Diffstat (limited to 'source4/lib')
-rw-r--r-- | source4/lib/util.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source4/lib/util.c b/source4/lib/util.c index 2351a98eae..2d149e6e3d 100644 --- a/source4/lib/util.c +++ b/source4/lib/util.c @@ -796,3 +796,20 @@ BOOL all_zero(const uint8_t *ptr, uint_t size) } return True; } + +/* + realloc an array, checking for integer overflow in the array size +*/ +void *realloc_array(void *ptr, size_t el_size, unsigned count) +{ +#define MAX_MALLOC_SIZE 0x7fffffff + if (count == 0 || + count >= MAX_MALLOC_SIZE/el_size) { + return NULL; + } + if (!ptr) { + return malloc(el_size * count); + } + return realloc(ptr, el_size * count); +} + |