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

Michael Niedermayer michael at niedermayer.cc
Tue Jan 2 02:14:06 EET 2018


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

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is dangerous to be right in matters on which the established authorities
are wrong. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180102/278242a4/attachment.sig>


More information about the ffmpeg-devel mailing list