mirror of
https://github.com/samba-team/samba.git
synced 2025-03-26 18:50:30 +03:00
Add extra argument free_on_fail to realloc_array() in Samba 4, as used by Samba 3.
This commit is contained in:
parent
3189d14152
commit
fcce58cc61
@ -40,20 +40,12 @@
|
||||
/**
|
||||
* Allocate an array of elements of one data type. Does type-checking.
|
||||
*/
|
||||
#if _SAMBA_BUILD_ == 3
|
||||
#define malloc_array_p(type, count) (type *)realloc_array(NULL, sizeof(type), count, false)
|
||||
#else
|
||||
#define malloc_array_p(type, count) (type *)realloc_array(NULL, sizeof(type), count)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Resize an array of elements of one data type. Does type-checking.
|
||||
*/
|
||||
#if _SAMBA_BUILD_ == 3
|
||||
#define realloc_p(p, type, count) (type *)realloc_array(p, sizeof(type), count, false)
|
||||
#else
|
||||
#define realloc_p(p, type, count) (type *)realloc_array(p, sizeof(type), count)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* zero a structure
|
||||
|
@ -569,11 +569,13 @@ _PUBLIC_ bool all_zero(const uint8_t *ptr, size_t size)
|
||||
/**
|
||||
realloc an array, checking for integer overflow in the array size
|
||||
*/
|
||||
_PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count)
|
||||
_PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count, bool free_on_fail)
|
||||
{
|
||||
#define MAX_MALLOC_SIZE 0x7fffffff
|
||||
if (count == 0 ||
|
||||
count >= MAX_MALLOC_SIZE/el_size) {
|
||||
if (free_on_fail)
|
||||
SAFE_FREE(ptr);
|
||||
return NULL;
|
||||
}
|
||||
if (!ptr) {
|
||||
@ -588,7 +590,7 @@ _PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count)
|
||||
|
||||
void *malloc_array(size_t el_size, unsigned int count)
|
||||
{
|
||||
return realloc_array(NULL, el_size, count);
|
||||
return realloc_array(NULL, el_size, count, false);
|
||||
}
|
||||
|
||||
_PUBLIC_ void *talloc_check_name_abort(const void *ptr, const char *name)
|
||||
|
@ -634,7 +634,7 @@ _PUBLIC_ bool all_zero(const uint8_t *ptr, size_t size);
|
||||
/**
|
||||
realloc an array, checking for integer overflow in the array size
|
||||
*/
|
||||
_PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count);
|
||||
_PUBLIC_ void *realloc_array(void *ptr, size_t el_size, unsigned count, bool free_on_fail);
|
||||
|
||||
/* The following definitions come from lib/util/fsusage.c */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user