Change free_sh_audio() to take demuxer and stream id as parameters
commit7022f65d0cc4edcb001a39f8836940f8a34ea029
authoruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 14 Jun 2006 14:05:59 +0000 (14 14:05 +0000)
committeruau <uau@b3059339-0415-0410-9bf9-f77b7e298cf2>
Wed, 14 Jun 2006 14:05:59 +0000 (14 14:05 +0000)
tree5f5e972af60e046298ee32112573cf64409bc8df
parenta4850512c0942fe92a2cb9f9bc3525d5e0d8e2b5
Change free_sh_audio() to take demuxer and stream id as parameters
(same as new_sh_audio()) instead of sh_audio_t *, use those to remove
the pointer from demuxer->a_streams[] before freeing it.

Some demuxers use free_sh_audio() to undo the creation of an
already-allocated audio stream in case of error. These uses were unsafe
since free_sh_audio() freed the data structure but left the pointer in
demuxer->a_streams[], leading to double free later in free_demuxer()
(and perhaps use of the freed stream before that, I didn't check).

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18711 b3059339-0415-0410-9bf9-f77b7e298cf2
libmpdemux/demux_audio.c
libmpdemux/demux_mkv.c
libmpdemux/demux_viv.c
libmpdemux/demuxer.c
libmpdemux/stheader.h