Commit 48b5ccf9 authored by Francois Cartegnie's avatar Francois Cartegnie

demux: ogg: rewrite headers gathering

parent 5b400093
...@@ -1266,20 +1266,18 @@ static void Ogg_DecodePacket( demux_t *p_demux, ...@@ -1266,20 +1266,18 @@ static void Ogg_DecodePacket( demux_t *p_demux,
/* Backup the ogg packet (likely an header packet) */ /* Backup the ogg packet (likely an header packet) */
if( !b_xiph ) if( !b_xiph )
{ {
void *p_org = p_stream->p_headers; uint8_t *p_realloc = realloc( p_stream->p_headers, p_stream->i_headers + p_oggpacket->bytes );
p_stream->i_headers += p_oggpacket->bytes; if( p_realloc )
p_stream->p_headers = realloc( p_stream->p_headers, p_stream->i_headers );
if( p_stream->p_headers )
{ {
memcpy( (unsigned char *)p_stream->p_headers + p_stream->i_headers - p_oggpacket->bytes, memcpy( &p_realloc[p_stream->i_headers], p_oggpacket->packet, p_oggpacket->bytes );
p_oggpacket->packet, p_oggpacket->bytes ); p_stream->i_headers += p_oggpacket->bytes;
p_stream->p_headers = p_realloc;
} }
else else
{ {
#warning Memory leak free( p_stream->p_headers );
p_stream->i_headers = 0; p_stream->i_headers = 0;
p_stream->p_headers = NULL; p_stream->p_headers = NULL;
free( p_org );
} }
} }
else if( xiph_AppendHeaders( &p_stream->i_headers, &p_stream->p_headers, else if( xiph_AppendHeaders( &p_stream->i_headers, &p_stream->p_headers,
......
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