summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-10 18:09:20 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-10 18:09:20 +0000
commit266c02e2e4ccb0b1c5af4d37a40b180ddace80c2 (patch)
treece8735bb1f4b188316912da21588a6532e4dcc02 /libmpdemux/demuxer.c
parentc39eb8fb595b9adf13bc14b458027e72252b109c (diff)
downloadmpv-266c02e2e4ccb0b1c5af4d37a40b180ddace80c2.tar.bz2
mpv-266c02e2e4ccb0b1c5af4d37a40b180ddace80c2.tar.xz
check for overflow in new_sh_video and new_sh_audio
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4643 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 7f95bf8f8f..1fa819ffa4 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -67,6 +67,12 @@ demuxer_t* new_demuxer(stream_t *stream,int type,int a_id,int v_id,int s_id){
}
sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id){
+ if(id > MAX_A_STREAMS-1)
+ {
+ mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested audio stream id overflow (%d > %d)\n",
+ id, MAX_A_STREAMS);
+ return NULL;
+ }
if(demuxer->a_streams[id]){
mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_AudioStreamRedefined,id);
} else {
@@ -85,6 +91,12 @@ void free_sh_audio(sh_audio_t* sh){
}
sh_video_t* new_sh_video(demuxer_t *demuxer,int id){
+ if(id > MAX_V_STREAMS-1)
+ {
+ mp_msg(MSGT_DEMUXER,MSGL_WARN,"Requested video stream id overflow (%d > %d)\n",
+ id, MAX_V_STREAMS);
+ return NULL;
+ }
if(demuxer->v_streams[id]){
mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_VideoStreamRedefined,id);
} else {