Commit a0b468f5 authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

Make sure av_new_packet() initializes the data and destruct pointers.

Some code does call av_free_packet() on failed av_new_packets(), this
prevents the freeing of uninitialized pointers.

Originally committed as revision 20801 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 15a316c0
......@@ -47,18 +47,20 @@ void av_init_packet(AVPacket *pkt)
int av_new_packet(AVPacket *pkt, int size)
{
uint8_t *data;
if((unsigned)size > (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
return AVERROR(ENOMEM);
uint8_t *data= NULL;
if((unsigned)size < (unsigned)size + FF_INPUT_BUFFER_PADDING_SIZE)
data = av_malloc(size + FF_INPUT_BUFFER_PADDING_SIZE);
if (!data)
return AVERROR(ENOMEM);
if (data){
memset(data + size, 0, FF_INPUT_BUFFER_PADDING_SIZE);
}else
size=0;
av_init_packet(pkt);
pkt->data = data;
pkt->size = size;
pkt->destruct = av_destruct_packet;
if(!data)
return AVERROR(ENOMEM);
return 0;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment