[FFmpeg-devel] [PATCH] lavu: define FF_MEMORY_POISON and use it

Stefano Sabatini stefasab at gmail.com
Sun May 12 14:03:17 CEST 2013


On date Sunday 2013-05-12 13:49:25 +0200, Clément Bœsch encoded:
> On Sun, May 12, 2013 at 01:39:40PM +0200, Stefano Sabatini wrote:
> > Allow single-place definition of constant used to fill poisoned memory.
> > ---
> >  libavutil/buffer.c   |    2 +-
> >  libavutil/internal.h |    2 ++
> >  libavutil/mem.c      |    2 +-
> >  3 files changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/libavutil/buffer.c b/libavutil/buffer.c
> > index a5fc8d7..e9bf54b 100644
> > --- a/libavutil/buffer.c
> > +++ b/libavutil/buffer.c
> > @@ -288,7 +288,7 @@ static void pool_release_buffer(void *opaque, uint8_t *data)
> >      AVBufferPool *pool = buf->pool;
> >  
> >      if(CONFIG_MEMORY_POISONING)
> > -        memset(buf->data, 0x2a, pool->size);
> > +        memset(buf->data, FF_MEMORY_POISON, pool->size);
> >  
> >      add_to_pool(buf);
> >      if (!avpriv_atomic_int_add_and_fetch(&pool->refcount, -1))
> > diff --git a/libavutil/internal.h b/libavutil/internal.h
> > index 76018a8..c5835fb 100644
> > --- a/libavutil/internal.h
> > +++ b/libavutil/internal.h
> > @@ -66,6 +66,8 @@
> >  #    define INT_BIT (CHAR_BIT * sizeof(int))
> >  #endif
> >  
> > +#define FF_MEMORY_POISON 0x2a
> > +
> >  // Some broken preprocessors need a second expansion
> >  // to be forced to tokenize __VA_ARGS__
> >  #define E1(x) x
> > diff --git a/libavutil/mem.c b/libavutil/mem.c
> > index 03bf2c8..9b22609 100644
> > --- a/libavutil/mem.c
> > +++ b/libavutil/mem.c
> > @@ -133,7 +133,7 @@ void *av_malloc(size_t size)
> >      }
> >  #if CONFIG_MEMORY_POISONING
> >      if (ptr)
> > -        memset(ptr, 0x2a, size);
> > +        memset(ptr, FF_MEMORY_POISON, size);
> >  #endif
> >      return ptr;
> >  }
> 

> What about adding it to configure? (shouldn't be much effort, possibly
> just adding too lines, see around L4600).

I prefer not to spend more time on this (figuring out all the input
verification issues etc.) also it can be done after this patch with no
harm.
-- 
FFmpeg = Fostering Fundamentalist Martial Pure Elfic God


More information about the ffmpeg-devel mailing list