mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavu/mem: Make other alloc functions more similar to av_malloc().
Do not limit the array allocation functions and av_calloc() to allocations of INT_MAX, instead depend on max_alloc_size like av_malloc(). Allows a workaround for ticket #7140.
This commit is contained in:
parent
64f4d58c5e
commit
b7d9507bb8
@ -183,23 +183,26 @@ int av_reallocp(void *ptr, size_t size)
|
|||||||
|
|
||||||
void *av_malloc_array(size_t nmemb, size_t size)
|
void *av_malloc_array(size_t nmemb, size_t size)
|
||||||
{
|
{
|
||||||
if (!size || nmemb >= INT_MAX / size)
|
size_t result;
|
||||||
|
if (av_size_mult(nmemb, size, &result) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return av_malloc(nmemb * size);
|
return av_malloc(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *av_mallocz_array(size_t nmemb, size_t size)
|
void *av_mallocz_array(size_t nmemb, size_t size)
|
||||||
{
|
{
|
||||||
if (!size || nmemb >= INT_MAX / size)
|
size_t result;
|
||||||
|
if (av_size_mult(nmemb, size, &result) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return av_mallocz(nmemb * size);
|
return av_mallocz(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
void *av_realloc_array(void *ptr, size_t nmemb, size_t size)
|
void *av_realloc_array(void *ptr, size_t nmemb, size_t size)
|
||||||
{
|
{
|
||||||
if (!size || nmemb >= INT_MAX / size)
|
size_t result;
|
||||||
|
if (av_size_mult(nmemb, size, &result) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return av_realloc(ptr, nmemb * size);
|
return av_realloc(ptr, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
int av_reallocp_array(void *ptr, size_t nmemb, size_t size)
|
int av_reallocp_array(void *ptr, size_t nmemb, size_t size)
|
||||||
@ -243,9 +246,10 @@ void *av_mallocz(size_t size)
|
|||||||
|
|
||||||
void *av_calloc(size_t nmemb, size_t size)
|
void *av_calloc(size_t nmemb, size_t size)
|
||||||
{
|
{
|
||||||
if (size <= 0 || nmemb >= INT_MAX / size)
|
size_t result;
|
||||||
|
if (av_size_mult(nmemb, size, &result) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return av_mallocz(nmemb * size);
|
return av_mallocz(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *av_strdup(const char *s)
|
char *av_strdup(const char *s)
|
||||||
|
Loading…
Reference in New Issue
Block a user