diff libmpdemux/demuxer.c @ 4642:e534c7dc0cc0

check for overflow in new_sh_video and new_sh_audio
author alex
date Sun, 10 Feb 2002 18:09:20 +0000
parents 886bf5274992
children 25b2a036aee7
line wrap: on
line diff
--- a/libmpdemux/demuxer.c	Sun Feb 10 17:48:41 2002 +0000
+++ b/libmpdemux/demuxer.c	Sun Feb 10 18:09:20 2002 +0000
@@ -67,6 +67,12 @@
 }
 
 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 @@
 }
 
 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 {