comparison command.c @ 23548:ac72a4e46c45

Make sure we do not access demuxer->s_streams out of bounds when invalid -sid is given
author reimar
date Sun, 17 Jun 2007 08:26:07 +0000
parents a6c619ee9d30
children 439dafcb16a5
comparison
equal deleted inserted replaced
23547:7acb7ac64104 23548:ac72a4e46c45
1255 } 1255 }
1256 #endif 1256 #endif
1257 if (mpctx->stream->type != STREAMTYPE_DVD 1257 if (mpctx->stream->type != STREAMTYPE_DVD
1258 && mpctx->stream->type != STREAMTYPE_DVDNAV) { 1258 && mpctx->stream->type != STREAMTYPE_DVDNAV) {
1259 int i = 0; 1259 int i = 0;
1260 d_sub->sh = NULL;
1260 for (d_sub->id = 0; d_sub->id < MAX_S_STREAMS; d_sub->id++) { 1261 for (d_sub->id = 0; d_sub->id < MAX_S_STREAMS; d_sub->id++) {
1261 if (mpctx->demuxer->s_streams[d_sub->id]) { 1262 if (mpctx->demuxer->s_streams[d_sub->id]) {
1262 if (i == dvdsub_id) 1263 if (i == dvdsub_id) {
1264 d_sub->sh = mpctx->demuxer->s_streams[d_sub->id];
1263 break; 1265 break;
1266 }
1264 i++; 1267 i++;
1265 } 1268 }
1266 } 1269 }
1267 d_sub->sh = mpctx->demuxer->s_streams[d_sub->id];
1268 } 1270 }
1269 if (mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA) 1271 if (mpctx->demuxer->type == DEMUXER_TYPE_MATROSKA)
1270 d_sub->id = demux_mkv_change_subs(mpctx->demuxer, dvdsub_id); 1272 d_sub->id = demux_mkv_change_subs(mpctx->demuxer, dvdsub_id);
1271 if (d_sub->sh && d_sub->id >= 0) { 1273 if (d_sub->sh && d_sub->id >= 0) {
1272 sh_sub_t *sh = d_sub->sh; 1274 sh_sub_t *sh = d_sub->sh;