Mercurial > mplayer.hg
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; |