From 7022f65d0cc4edcb001a39f8836940f8a34ea029 Mon Sep 17 00:00:00 2001 From: uau Date: Wed, 14 Jun 2006 14:05:59 +0000 Subject: 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/stheader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libmpdemux/stheader.h') diff --git a/libmpdemux/stheader.h b/libmpdemux/stheader.h index 145f288d3d..74a43f9262 100644 --- a/libmpdemux/stheader.h +++ b/libmpdemux/stheader.h @@ -89,7 +89,7 @@ typedef struct { // demuxer.c: sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id); sh_video_t* new_sh_video(demuxer_t *demuxer,int id); -void free_sh_audio(sh_audio_t *sh); +void free_sh_audio(demuxer_t *demuxer, int id); void free_sh_video(sh_video_t *sh); // video.c: -- cgit v1.2.3