player: fix unchecked access for chapter metadata

It's possible that MPContext has a chapter list, but the demuxer
doesn't. In this case, accesing the chapter-metadata property would
lead to invalid accesses.

(This fixes the out of bound access, but in theory, the returned data
can still be incorrect, since MPContext chapters don't need to map
directly to demuxer chapters.)
This commit is contained in:
wm4 2014-03-26 17:07:53 +01:00
parent e565217f22
commit 6e2c29b786
1 changed files with 1 additions and 3 deletions

View File

@ -750,11 +750,9 @@ static int mp_property_chapter_metadata(m_option_t *prop, int action, void *arg,
{ {
struct demuxer *demuxer = mpctx->master_demuxer; struct demuxer *demuxer = mpctx->master_demuxer;
int chapter = get_current_chapter(mpctx); int chapter = get_current_chapter(mpctx);
if (!demuxer || chapter < 0) if (!demuxer || chapter < 0 || chapter >= demuxer->num_chapters)
return M_PROPERTY_UNAVAILABLE; return M_PROPERTY_UNAVAILABLE;
assert(chapter < demuxer->num_chapters);
return tag_property(prop, action, arg, demuxer->chapters[chapter].metadata); return tag_property(prop, action, arg, demuxer->chapters[chapter].metadata);
} }