On 10/01/13 20:12, Dale Curtis wrote: > From: "Paweł Hajdan, Jr" <[email protected]> > > Memory passed to av_realloc cannot be allocated using memalign. > > From realloc(3): > > The realloc() function changes the size of the memory block pointed to > by ptr to size bytes. (...) Unless ptr is NULL, it must have been returned > by an earlier call to malloc(), calloc() or realloc(). > > The issue has been found by debugallocation, a part of google-perftools: > http://code.google.com/p/gperftools/ . > > Signed-off-by: Paweł Hajdan, Jr <[email protected]> > --- > libavformat/oggparsevorbis.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c > index 16bcaef..452d856 100644 > --- a/libavformat/oggparsevorbis.c > +++ b/libavformat/oggparsevorbis.c > @@ -173,11 +173,13 @@ static unsigned int > fixup_vorbis_headers(AVFormatContext * as, struct oggvorbis_private *priv, > uint8_t **buf) > { > - int i,offset, len; > + int i,offset, len, buf_len; > unsigned char *ptr; > > len = priv->len[0] + priv->len[1] + priv->len[2]; > - ptr = *buf = av_mallocz(len + len/255 + 64); > + buf_len = len + len/255 + 64; > + ptr = *buf = av_realloc(NULL, buf_len); > + memset(*buf, '\0', buf_len);
Is the memset doesn't seem necessary since we trim the buffer in the end. lu _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
