[FFmpeg-devel] [PATCH][RFC]lavu/mem: Allow allocations close to max_alloc_size with av_fast_realloc()

Carl Eugen Hoyos ceffmpeg at gmail.com
Tue Jan 2 03:00:50 EET 2018


2018-01-02 1:14 GMT+01:00 Michael Niedermayer <michael at niedermayer.cc>:
> On Mon, Jan 01, 2018 at 11:10:57PM +0100, Carl Eugen Hoyos wrote:
>> Hi!
>>
>> Similar reason as last mem.c patch: av_fast_realloc() can currently
>> fail in situations where the allocation is possible and allowed.
>> The patch does not change behaviour for the failure case, if this is
>> wanted, it should be done separately.
>>
>> Please comment, Carl Eugen
>
>>  mem.c |    5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>> 7529e1d584c62ece463f4461279ea6e3973162c9  0001-lavu-mem-Allow-allocations-close-to-max_alloc_size-w.patch
>> From ac69f4e8402f7c7ee6df09c0450354e2bb900e5a Mon Sep 17 00:00:00 2001
>> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
>> Date: Mon, 1 Jan 2018 23:04:58 +0100
>> Subject: [PATCH] lavu/mem: Allow allocations close to max_alloc_size with
>>  av_fast_realloc().
>>
>> ---
>>  libavutil/mem.c |    5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/libavutil/mem.c b/libavutil/mem.c
>> index 0729e1d..934987f 100644
>> --- a/libavutil/mem.c
>> +++ b/libavutil/mem.c
>> @@ -466,7 +466,10 @@ void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size)
>>      if (min_size <= *size)
>>          return ptr;
>>
>> -    min_size = FFMAX(min_size + min_size / 16 + 32, min_size);
>> +    if (min_size > (max_alloc_size - 32))
>> +        return NULL;
>
> This failure mode differs from the existing in what it does with *size

New patch attached.

Thank you, Carl Eugen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavu-mem-Allow-allocations-close-to-max_alloc_size-w.patch
Type: text/x-patch
Size: 970 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180102/c501a6e0/attachment.bin>


More information about the ffmpeg-devel mailing list