diff options
author | ace20022 <ace20022@ymail.com> | 2014-08-21 21:55:04 +0200 |
---|---|---|
committer | ace20022 <ace20022@ymail.com> | 2014-08-21 21:59:35 +0200 |
commit | 476a7d0f43f0538b8fda80dc2f7362e2dc4362fc (patch) | |
tree | 81c4263fdc3724af6faa7ab80639106fbd0cab54 | |
parent | 0da9a6b6aaeed421f0ac7862a904f585f6c1784c (diff) |
[Fix] Only handle BD_EVENT_ANGLE events if we have a valid/sane playlist id.
-rw-r--r-- | xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp | 10 | ||||
-rw-r--r-- | xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h | 2 |
2 files changed, 9 insertions, 3 deletions
diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp index 6a7d4dc313..3326f29bd0 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.cpp @@ -485,9 +485,13 @@ void CDVDInputStreamBluray::ProcessEvent() { CLog::Log(LOGDEBUG, "CDVDInputStreamBluray - BD_EVENT_ANGLE %d", m_event.param); m_angle = m_event.param; - if (m_title) - m_dll->bd_free_title_info(m_title); - m_title = m_dll->bd_get_playlist_info(m_bd, m_playlist, m_angle); + + if (m_playlist <= MAX_PLAYLIST_ID) + { + if(m_title) + m_dll->bd_free_title_info(m_title); + m_title = m_dll->bd_get_playlist_info(m_bd, m_playlist, m_angle); + } break; case BD_EVENT_END_OF_TITLE: diff --git a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h index 262c7b8800..01fff00f6d 100644 --- a/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h +++ b/xbmc/cores/dvdplayer/DVDInputStreams/DVDInputStreamBluray.h @@ -32,6 +32,8 @@ extern "C" #include <libbluray/overlay.h> } +#define MAX_PLAYLIST_ID 99999 + class CDVDOverlayImage; class DllLibbluray; class IDVDPlayer; |