summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-12-20 11:21:02 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-12-20 11:21:02 +0000
commit77e2ce680b3f5477bd3b741d18a0f5d791bffe04 (patch)
treecb9ebd379d7ed4a5ac2e508e15c816fffb99266d /libmpdemux
parent75e3df67ae4405c9e3fa7e7a2d5c3eed2f307969 (diff)
downloadmpv-77e2ce680b3f5477bd3b741d18a0f5d791bffe04.tar.bz2
mpv-77e2ce680b3f5477bd3b741d18a0f5d791bffe04.tar.xz
Move ds->current=NULL; further up to the free_demux_packet.
This does not change behaviour in the normal case but avoids a double-free if the function is aborted via a signal handler. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25472 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demuxer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index a666e3c9e3..8a81fc66f9 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -383,6 +383,7 @@ int demux_fill_buffer(demuxer_t *demux,demux_stream_t *ds){
int ds_fill_buffer(demux_stream_t *ds){
demuxer_t *demux=ds->demuxer;
if(ds->current) free_demux_packet(ds->current);
+ ds->current=NULL;
if( mp_msg_test(MSGT_DEMUXER,MSGL_DBG3) ){
if(ds==demux->audio) mp_dbg(MSGT_DEMUXER,MSGL_DBG3,"ds_fill_buffer(d_audio) called\n");else
if(ds==demux->video) mp_dbg(MSGT_DEMUXER,MSGL_DBG3,"ds_fill_buffer(d_video) called\n");else
@@ -431,7 +432,6 @@ int ds_fill_buffer(demux_stream_t *ds){
}
ds->buffer_pos=ds->buffer_size=0;
ds->buffer=NULL;
- ds->current=NULL;
mp_msg(MSGT_DEMUXER,MSGL_V,"ds_fill_buffer: EOF reached (stream: %s) \n",ds==demux->audio?"audio":"video");
ds->eof=1;
return 0;